
问下 怎么形成的。。。。。 嗯 都不会调用 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 最好的语言, 那么手册也应该是最好的! |