php static self小区别

一下结果会输出 B class

class A {
    public static function className(){
        echo "A Class";
    }

    public static function test(){
        static::className();
    }
}

class B extends A{
    public static function className(){
        echo "B Class";
    }
}

B::test();


将test中的static改成self。输出A class

class A {
    public static function className(){
        echo "A Class";
    }

    public static function test(){
        self::className();
    }
}

class B extends A{
    public static function className(){
        echo "B Class";
    }
}

B::test();

而实际上,我们想要调用的是B中的方法,既然继承了A中的方法,那么在去访问A中的方法,显然不是我们的想法。

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>