相关代码
<?php
class A {
public function test () {
static::who();
A::who();
self::who();
$this->who();
}
public static function __callStatic($a, $b) {
var_dump('A static');
}
public function __call($a, $b) {
var_dump('A call');
}
}
$a = new A;
$a->test();
?>
你期待的结果是什么?实际看到的错误信息又是什么?
为何会输出4个A call,当他调用A::who()
,不是应该触发__callStatic
吗
string(6) "A call"
string(6) "A call"
string(6) "A call"
string(6) "A call"
所以说调用哪个并不是根据你的调用方式,是根据所在的上下文。