我有两个对象。对象A和B。
A有一个返回B的方法。我想动态调用它,所以我用一个字符串来调用B里面的方法,如下所示:
$method = 'getB()->someMethod';
但如果这样做:
$a = new A();
$a->$method();
它不起作用。有什么想法吗?
答案 0 :(得分:18)
你不能这样做。 $method
只能包含A
方法的名称。阅读variable functions。你可以使用变量,例如
$method1 = 'getB';
$method2 = 'someMethod';
$a->$method1()->$method2();
但可能最好重新考虑问题,考虑代码的另一个结构和/或查看设计模式。
问题是:你的最终目标是什么?