1

我有一个静态方法,它返回一个完全命名空间的类标识符。我希望能够像这样在单行中调用所述类的静态方法:

static::CLASSES('\name\spaced\Foo')::bar();

我假设我有某种解决问题。我一直在玩{},但无法让它工作。

如果可能的话,我不想执行以下操作(可行):

$foo = static::CLASSES('\name\spaced\Foo');
$foo::bar();
4

1 回答 1

1

我想你正在寻找的是static::CLASSES('\name\spaced\Foo')->bar();

如果第一个表达式返回一个实例,那么您将调用一个实例方法

更新

现在第一个方法返回一个类名而不是我相信的实例方法

call_user_func(array(static::CLASSES('\name\spaced\Foo'), "bar"));

或带参数

call_user_func_array(array(static::CLASSES('\name\spaced\Foo'), "bar"), $paramArray);

可以向你展示一些爱

于 2013-05-30T01:09:26.773 回答