php progamiticly访问静态函数

时间:2010-12-09 19:53:57

标签: php static static-methods

哪个更好,为什么:

call_user_func(array($class, $method), $params);

$class::$method($params);

第二种方法仅适用于PHP 5.3。我在较旧的virsion投掷致命错误意外T_PAAMAYIM_NEKUDOTAYIM。 (我的ide也认为它是一个语法错误。但它确实有效)

3 个答案:

答案 0 :(得分:3)

如果可移植性对您很重要,那么您应该使用第一种方式的明显答案。如果您知道自己总是至少瞄准PHP 5.3,那么您应该使用自己感觉最舒服的方法。 $class::$method($params);更短更清洁,所以我自己去做。

答案 1 :(得分:1)

两者都很好。不过,我认为第二种语法更清晰。如你所说,唯一的缺点是需要5.3 +。

答案 2 :(得分:0)

使用PHP 5.3.0,还有forward_static_call()功能,虽然对其使用有一些限制