May
27
话说PHP的call_user_func_array
前些天写的程序在上线的时候出现BUG了,错误提示就是call_user_func_array无法调用指定的函数。
代码大概是这样的
追了一下发现是PHP版本的问题,开发环境使用的是php 5.2.17,而线上环境是旧版本的5.1.6。5.1版的php的call_user_func / call_user_func_array函数没法调用类的静态函数,所以出现了这个问题。
没有很好的解决方法,大致就是
1. 升级PHP(最后我们是这么做的)
2. 使用字符串拼出一段php代码,然后用eval来执行。很挫,但是也能用。
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
代码大概是这样的
class foo {
public static function bar($arg1, $arg2) {
//do sth.
}
}
call_user_func_array("foo:bar", array(1, 2));
public static function bar($arg1, $arg2) {
//do sth.
}
}
call_user_func_array("foo:bar", array(1, 2));
追了一下发现是PHP版本的问题,开发环境使用的是php 5.2.17,而线上环境是旧版本的5.1.6。5.1版的php的call_user_func / call_user_func_array函数没法调用类的静态函数,所以出现了这个问题。
没有很好的解决方法,大致就是
1. 升级PHP(最后我们是这么做的)
2. 使用字符串拼出一段php代码,然后用eval来执行。很挫,但是也能用。
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。