PHP

PHP static 和 self 的区别

quhe.net
2018-02-07 / 0 评论 / 534 阅读 / 正在检测是否收录...
  • self :: 在哪个类里调用的就调用哪个类中的方法,不受重写的影响。
  • static :: 调用的方法如果被子类重写,那调用的就是子类中的方法。
//父类
class father
{
    public static function name()
    {
        echo "xiaosan";
        echo "<br />";
    }
    
    public static function callself()
    {
        self::name();   //调用name方法
    }
    
    public static function callstatic()
    {
        static::name(); //静态绑定
    }
}

//继承类
class son extends father
{
    //重写name方法
    public static function name()
    {
        echo "gaojin";
        echo "<br />";
    }
}

son::callself();    // xiaosan
son::callstatic();  // gaojin
32

评论 (0)

取消