今天处理一个bug,很是奇怪。是关于call_user_func的。

在设置断点跟踪后发现,调用函数很快就找到了类中对应的方法,而且没有使用autoload,但当类中方法返回的时候,发现autoload方法被调用了,接着就是报错,一个很奇怪的类名称,然后自然是没有找到这个类。

一开始以为是程序文件出问题,或者是服务器权限问题,但这些问题都一一排除了。

最后只好换了一种写法来调用。之前是call_user_func(array(classname, method), …)这样调用的,之后改为call_user_func(‘classsname::method’, …) 。修改之后,发现居然可以正常运行了。

 

我想大概原因是服务器环境的问题,或者php版本的问题吧。问题解决了,但深层原因还是未知,有知道的请留言给我吧~

1 对 “call_user_func 和 autoload 产生的问题”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注