$name = 'user';
$run->{$name};
,我有结果通知:
Undefined property: run::$user
我在控制器方法的用户,但在错误我看到字符串昂$字符。
这是一些特殊的字符?
$name = 'user';
$run->{$name};
,我有结果通知:
Undefined property: run::$user
我在控制器方法的用户,但在错误我看到字符串昂$字符。
这是一些特殊的字符?
obj->{$foo}
相当于obj->bar
如果$foo
中的字符串是'bar'
。
请参阅http://php.net/manual/en/language.variables.variable.php了解更多详情。
如果obj->bar
实际上是方法,你应该叫它为obj->bar()
...
并由此object->{$foo}()
- 注意括号。
$run->{$name}
就像你写$run->user
,当你想使用的变量
值来访问对象的属性,因此,如果$name = 'user';
然后$run->{$name}
将努力让与name属性,这是使用“用户'
$name = "user";
$run->{$name}();
运行一个方法user();
如果你有在控制器(其中您在$run
拍摄的实例)的方法,你可以使用:
$run->$name();
参考variable variables大括号需要时仅字符串的一部分是变量名和PHP会错误地解释它。在所有其他情况下,它们都是可选的,并且为了更好的可读性而放置(与()括号在表达式中使用的方式相同)。既然你指的是方法,而不是属性,你必须使用()。即使不使用变量变量也是如此:
$foo->user // access to property
$foo->user() // method call