这个功能叫什么,它在哪里记录?动态对象查找?

时间:2014-03-19 03:28:27

标签: php syntax language-features

我正在寻找有关PHP功能的更多信息,如下所示:

$obj->{$prop};
$obj->{$method}();

它叫什么?有记录吗?在哪里?

编辑:

澄清 - 我问的是花括号的语法,你可以用它来对象属性或方法进行动态复杂的查找。例如,正如php -l所报告的那样,这些是有效的:

echo $obj->{"val"};               // property lookup with string literal
echo $obj->{$method()->{$var}}(); // complex method lookup
echo $obj::${$other::$something}; // static property lookup

但这不是:

echo $obj::{$other::$something};  // class constant lookup

我正在搜索“官方”的内容,如果存在这样的文档,则会概述这种语法的有效性和无效性。

2 个答案:

答案 0 :(得分:1)

关于'括号语法的官方文档'在字符串中使用时:

http://www.php.net/manual/en/language.types.string.php

查看以下部分:' Variable Parsing' (复杂)有关使用它来查找对象属性等的详细信息。

另一次,您可能需要使用'括号语法'如果您使用'变量'。

这时您想使用变量来保存另一个变量的名称。

这里记录了这些以及可能的用途:

http://www.php.net/manual/en/language.variables.variable.php

答案 1 :(得分:0)

http://us1.php.net/call_user_func

混合call_user_func(可调用$ callback [,混合$参数[,混合$ ...]])

获取变量只是

$obj->$variable