php 的坑 。。。 嗯 静态方法关键字。。。的坑 有谁遇到过

2016-03-07 12:01:38 +08:00
 lianyue

问下 怎么形成的。。。。。 嗯 都不会调用 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 优先级都会更高

3618 次点击
所在节点    PHP
14 条回复
vibbow
2016-03-07 12:08:48 +08:00
在对象中调用一个不可访问方法时,__call() 会被调用。

用静态方式中调用一个不可访问方法时,__callStatic() 会被调用。
vibbow
2016-03-07 12:14:16 +08:00
abelyao
2016-03-07 12:17:32 +08:00
手册啊手册… 要仔细看啊…
vibbow
2016-03-07 12:19:22 +08:00
手册写的其实是很清楚的,目测是 LZ 把用法想当然了……
yangqi
2016-03-07 12:45:26 +08:00
RTFM
hitsmaxft
2016-03-07 13:07:09 +08:00
理解下实例方法和静态方法调用
wuhang89
2016-03-07 13:35:30 +08:00
额,这个真不是坑。
stdrickforce
2016-03-07 13:42:32 +08:00
智商的坑吧...
zi
2016-03-07 14:08:26 +08:00
class xx 加
public static function test2 (){
self::xx();
static::xx();
parent::xx();
}

运行 xx::test2();
phithon
2016-03-07 14:37:20 +08:00
08 年就有人问过这个问题……
https://bugs.php.net/bug.php?id=45159
要好好看手册,好好看搜索引擎。
lianz
2016-03-07 22:04:29 +08:00
READ THE FUCKING MANUAL
miaotaizi
2016-03-08 08:58:54 +08:00
PHP 最好的语言, 那么手册也应该是最好的!
jhdxr
2016-03-08 14:32:47 +08:00
@miaotaizi 坦白说 PHP 缺点很多。但手册真的算非常非常不错的了。。。
mingyun
2016-04-03 23:34:02 +08:00
@miaotaizi 哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/261645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX