1

我知道如果我在 PHP 中有一个名为“foo”的函数,我可以通过以下方式动态调用它:

$var = "foo";
$var();

如果 foo 是名为“bar”的对象的方法,我可以如下动态调用它:

$var = "foo";
$bar->$var();

这里唯一的问题——我不仅需要动态指定对象的方法——而且我还需要动态指定对象本身——并将组合传递给利用字符串约定进行动态的库功能。有没有办法做到这一点?

4

2 回答 2

2

与您对方法名称所做的非常相似,您可以指定类的名称并调用对象的构造函数:

$objectVar = 'myObject';
$bar = new $objectVar();
$objectVar = 'newObject';
$newBar = new $objectVar();

这将为 myObject 和 newObject 类中的每一个提供一个对象。

于 2015-05-06T06:08:49.773 回答
1

或者,如果您想指定对象而不是初始化一个新对象,您可以使用

$var = "objectName";
$func = "functionName";
$$var->$func();
于 2015-05-06T06:12:29.963 回答