$ this-> {$ this-> varname}()语法

时间:2013-04-08 21:34:28

标签: php

http://www.php.net/manual/en/functions.variable-functions.php#24931

该功能与$this->{$this->varname}()类似。我试了一下,并确认这是有效的语法,但它让我感到疑惑...... php.net在哪里讨论在这样的变量名中使用花括号?

2 个答案:

答案 0 :(得分:1)

Variable variables

  

也可以使用变量属性名访问类属性。 ...

     

也可以使用大括号来清楚地界定属性名称。

也可以查看该页面上的示例。

答案 1 :(得分:1)

为什么它不起作用?

这些是变量/函数名称。

$f = "time";
$f(); // returns the actual time

它现在是相同的,仅在对象上下文中(http://php.net/manual/en/functions.variable-functions.php):

$object->$f; // calls the method with the name $f in $object

现在,要说它是名为$this->varname的方法,您需要写$this->{$this->varname},因为$this->$this->varname将被解释为($this->$this)->varname,结果为{{1}你不想要的东西。