static的理解

static我先这样理解:static只获取基类的定义的值,self:之后去基类自身的值 //完全错误😂,换种思维

说明:

self:类内指针,就是写在哪个类里边,就调用哪个类里边的方法或属性。

static:使用的这个类会被子类覆盖,使用的是子类的方法或属性,就是说父类访问的是子类的方法或属性。

//自己理解下:self-在哪个类中使用就是访问哪个类中的属性/方法。static-会被子类覆盖,比如说b子类调用A父类,虽然说static在A父类中写的,但是调用的属性/方法还是b子类的

例子:

class a{
    public static function who(){
        echo "my name is xiaofeng";
    }
    public static function name(){
        self::who();
    }
}
class b extends a{
    public static function who(){
        echo "my name is xiaoma";
    }
    public static function name(){
        static::who();
    }
}
a::name();
b::name();

输出:
a、my name is xiaofeng
b、my name is xiaoma

 

posted @ 2018-09-11 17:13  bigclould  阅读(156)  评论(0编辑  收藏  举报