我遇到过这样的访问/更改变量的需求:
$this->{$var}
上下文包含CI datamapper获取规则。我似乎找不到这个语法的实际用途。在这种情况下,{
的作用是什么?
为什么你不能直接使用:
$this->var
发布于 2013-05-07 06:42:52
首先,$this->{$var}
和$this->var
是两个截然不同的东西。后者将请求var
类变量,而另一个将请求$var
字符串中包含的变量的名称。如果$var
是字符串'foo'
,那么它将请求$this->foo
,依此类推。
这对于动态编程很有用(当您只在运行时知道变量的名称时)。但是,字符串上下文中的经典{}
表示法非常强大,特别是当您有奇怪的变量名时:
${'y - x'} = 'Ok';
$var = 'y - x';
echo ${$var};
即使变量名y - x
由于空格和-
字符而无效,也会输出Ok
。
https://stackoverflow.com/questions/16408037
复制相似问题