首页 > php > php static::和self::的区别

php static::和self::的区别

作者:bin

static:访问当前类的static方法

class A {
    public static function who() {
        echo A::class . "\n";
    }
    public static function test() {
        <span style="color: #ff0000;">static::who();</span>
    }
}
class B extends A {
    public static function who() {
        echo B::class . "\n";
    }
}

A::test();//A

B::test();//B

 

self: 是类内指针,不管是否继承,都访问的是本类的static方法,属性

class A {
    public static function who() {
        echo A::class . "\n";
    }
    public static function test() {
        <span style="color: #ff0000;">self::who();</span>
    }
}
class B extends A {
    public static function who() {
        echo B::class . "\n";
    }
}

A::test();//A

B::test();//A

您必须 [ 登录 ] 才能发表留言!