php类中self和static调用静态方法的区别

php类中self和static调用静态方法的区别?看一下demo

    

一:demo

    1:self

class Car
{
   
public static function model()
   {
       
self::getModel();
   }

   
protected static function getModel()
   {
       
echo "This is a car model".PHP_EOL;
   }
}

Car::model();

class Taxi extends Car
{
   
protected static function getModel()
   {
       
echo "This is a Taxi model";
   }
}
Taxi::model();

    阿群博客

    self:子类还是会调用父类的方法

    2:static

class Car
{
   
public static function model()
   {
       
static::getModel();
   }

   
protected static function getModel()
   {
       
echo "This is a car model".PHP_EOL;
   }
}

Car::model();

class Taxi extends Car
{
   
protected static function getModel()
   {
       
echo "This is a Taxi model".PHP_EOL;
   }
}
Taxi::model();

    阿群博客

    static:子类会调用父类中子类的方法

二:总结

    self只能引用当前类中的方法,而static关键字允许函数能够在运行时动态绑定类中的方法。

阿群博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论