我在这个SO答案中看到,可以使用大括号内的字符串来调用PHP类方法,这样
$player->SayHi();
可以替换为:
$player->{'SayHi'}();
我的问题是:
这个语法在PHP中叫什么?如果使用了与方法不对应的错误字符串,会发生什么?
此外,我可以使用此语法来调用非类方法吗?
我查看了链接文章中的答案,其中只有指向PHP回调语法的链接,似乎没有涵盖大括号语法。
谢谢,
它是可变函数的一部分。使用变量变量或变量函数时,可以将变量替换为任何通过大括号换行返回字符串的表达式。所以你可以做:
$var = 'SayHi';
$player->$var();
或者你可以用一步完成
$player->{'SayHi'}();
带大括号的语法显示在变量的文档中。该示例用于变量类属性,但类方法使用相同的语法。
您可以在PHP手册中了解到这一点
基本:
function getVarName()
{ return 'aMemberVar'; }
print $foo->{getVarName()}; // prints "aMemberVar Member Variable"
它是可变函数的一部分。