问下 怎么形成的。。。。。 嗯 都不会调用 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 2016-03-07 12:08:48 +08:00 via Android
在对象中调用一个不可访问方法时,__call() 会被调用。
用静态方式中调用一个不可访问方法时,__callStatic() 会被调用。 |
2
vibbow 2016-03-07 12:14:16 +08:00 via Android
|
3
abelyao 2016-03-07 12:17:32 +08:00 via iPhone
手册啊手册… 要仔细看啊…
|
4
vibbow 2016-03-07 12:19:22 +08:00 via Android
手册写的其实是很清楚的,目测是 LZ 把用法想当然了……
|
5
yangqi 2016-03-07 12:45:26 +08:00
RTFM
|
6
hitsmaxft 2016-03-07 13:07:09 +08:00 via iPhone
理解下实例方法和静态方法调用
|
7
wuhang89 2016-03-07 13:35:30 +08:00
额,这个真不是坑。
|
8
stdrickforce 2016-03-07 13:42:32 +08:00 1
智商的坑吧...
|
9
zi 2016-03-07 14:08:26 +08:00
class xx 加
public static function test2 (){ self::xx(); static::xx(); parent::xx(); } 运行 xx::test2(); |
10
phithon 2016-03-07 14:37:20 +08:00
|
11
lianz 2016-03-07 22:04:29 +08:00
READ THE FUCKING MANUAL
|
12
miaotaizi 2016-03-08 08:58:54 +08:00 1
PHP 最好的语言, 那么手册也应该是最好的!
|