我知道如果我在 PHP 中有一个名为“foo”的函数,我可以通过以下方式动态调用它:
$var = "foo";
$var();
如果 foo 是名为“bar”的对象的方法,我可以如下动态调用它:
$var = "foo";
$bar->$var();
这里唯一的问题——我不仅需要动态指定对象的方法——而且我还需要动态指定对象本身——并将组合传递给利用字符串约定进行动态的库功能。有没有办法做到这一点?
我知道如果我在 PHP 中有一个名为“foo”的函数,我可以通过以下方式动态调用它:
$var = "foo";
$var();
如果 foo 是名为“bar”的对象的方法,我可以如下动态调用它:
$var = "foo";
$bar->$var();
这里唯一的问题——我不仅需要动态指定对象的方法——而且我还需要动态指定对象本身——并将组合传递给利用字符串约定进行动态的库功能。有没有办法做到这一点?
与您对方法名称所做的非常相似,您可以指定类的名称并调用对象的构造函数:
$objectVar = 'myObject';
$bar = new $objectVar();
$objectVar = 'newObject';
$newBar = new $objectVar();
这将为 myObject 和 newObject 类中的每一个提供一个对象。
或者,如果您想指定对象而不是初始化一个新对象,您可以使用
$var = "objectName";
$func = "functionName";
$$var->$func();