我在这个SO answer中看到,可以使用花括号内的字符串来调用PHP类方法,以便
$player->SayHi();
可以替代写成:
$player->{'SayHi'}();
我的问题是:
PHP中调用的语法是什么?如果使用了与方法不对应的错误字符串会发生什么?
另外,我可以使用这种语法来调用非类方法吗?
我查看了链接帖子中的答案,并且只有PHP回调语法的链接,这似乎不包括大括号语法。
谢谢,
答案 0 :(得分:6)
它是variable functions的一部分。使用变量或变量函数时,可以将变量替换为通过包装大括号返回字符串的任何表达式。所以你可以这样做:
$var = 'SayHi';
$player->$var();
或者您可以通过以下步骤一步完成:
$player->{'SayHi'}();
带括号的语法显示在variable variables的文档中。示例中有一个变量类属性,但类方法使用相同的语法。
答案 1 :(得分:1)
您可以在PHP manual
中了解相关信息基本上:
function getVarName()
{ return 'aMemberVar'; }
print $foo->{getVarName()}; // prints "aMemberVar Member Variable"
它是变量函数的一部分。