解决多个静态方法调用

时间:2013-05-30 00:54:02

标签: php static-methods

我有一个静态方法,它返回一个完全名称间隔的类标识符。我希望能够在单行中调用所述类的静态方法,如下所示:

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

我认为我有某种解决问题。我一直在玩{},但无法让它发挥作用。

如果可能,我不想做以下(有效):

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

1 个答案:

答案 0 :(得分: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);

可能会告诉你一些爱情