如果Ruby被邀请参加派对并带来:
foobarobject.send('foomethod')
..并且Python被邀请到同一个派对并带来:
getattr(foobarobject, 'foomethod')()
.. PHP必须为聚会带来什么?
奖金问题:如果Ruby和Python嫉妒PHP的派对恩惠,他们会在PHP的文档中搜索哪些英语术语,以便在PHP背后讨论它?
答案 0 :(得分:11)
PHP带来了这个:
$foobarobject->{"foomethod"}();
......和可乐和薯条。
修改强>:
虽然上面的术语是variable variables
,但没有具体谈到对手册中的对象进行操作。但是,您可以使用call_user_func
实现相同的目的:
call_user_func(array($foobarobject, "foomethod"));
答案 1 :(得分:3)
使用变量来保存方法名称。与Paolo的第一个例子几乎相同,但除非你知道它,否则可能不那么明显。
$method = "foomethod";
$foobarobject->$method();
您还获得了Reflection classes。
$method = new ReflectionMethod('Foobar', 'foomethod');
$method->invoke(null);