直接上代码:
class A{
public static function __callStatic($name, $arguments)
{
echo $name.'静态方法不存在!';
}
public function test()
{
echo 'test 方法';
}
}
A::test();
上面代码输出:test 方法
结果调用了 test()方法,并没有执行__callStatic()方法,我的本意是想用__callStatic()处理A::test()
这种错误的调用情况,这种情况该怎么处理呢?
http://www.jb51.net/article/3...
我查了一下,应该是这样子的,不是魔术方法__callStatic()的问题。
比方说test是静态方法,我们可以用A::test();或者,$A = new A(); $A->test();这两种调用方法是允许的。
现在因为test不是静态,只能用$A = new A(); $A->test();,你用A::test();,程序有警告,但是由于error_reporting(0);级别太高,把警告忽略了,虽然抛出警告,但是程序还是照样执行。