$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