1

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

该函数执行类似$this->{$this->varname}(). 我尝试了它并确认这是有效的语法,但它让我想知道...... php.net 在哪里讨论在这样的变量名中使用大括号?

4

2 回答 2

1

变量变量

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

也可以使用花括号来明确界定属性名称。

请参阅该页面上的示例。

于 2013-04-08T21:40:22.177 回答
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

现在,要说它是带有 name 的方法$this->varname,您需要编写$this->{$this->varname}as$this->$this->varname将被解释为您不想要($this->$this)->varname的结果。in $this->{$this->__toString()}->varname

于 2013-04-08T21:42:43.767 回答