问下 怎么形成的。。。。。 嗯 都不会调用 callStatic
class x{
public static function __callstatic($name, $args) {
echo 'callstatic';
}
public function __call($name, $args){
echo 'call';
}
}
class xx extends x {
public function test () {
self::xx();
static::xx();
parent::xx();
}
}
$xx = new xx;
$xx ->test();
被坑的满地找牙 好像 在方法内调用 静态方法 __call 优先级都会更高
1
vibbow Mar 7, 2016 via Android
在对象中调用一个不可访问方法时,__call() 会被调用。
用静态方式中调用一个不可访问方法时,__callStatic() 会被调用。 |
2
vibbow Mar 7, 2016 via Android
|
3
abelyao Mar 7, 2016 via iPhone
手册啊手册… 要仔细看啊…
|
4
vibbow Mar 7, 2016 via Android
手册写的其实是很清楚的,目测是 LZ 把用法想当然了……
|
5
yangqi Mar 7, 2016
RTFM
|
6
hitsmaxft Mar 7, 2016 via iPhone
理解下实例方法和静态方法调用
|
7
wuhang89 Mar 7, 2016
额,这个真不是坑。
|
8
stdrickforce Mar 7, 2016 智商的坑吧...
|
9
zi Mar 7, 2016
class xx 加
public static function test2 (){ self::xx(); static::xx(); parent::xx(); } 运行 xx::test2(); |
10
phithon Mar 7, 2016
|
11
lianz Mar 7, 2016
READ THE FUCKING MANUAL
|
12
miaotaizi Mar 8, 2016 PHP 最好的语言, 那么手册也应该是最好的!
|