什么是PHP中的后期静态绑定?

后期静态绑定的基本思想是继承的概念和'self'关键字的概念不遵循相同的规则。例如,父类在子类中调用的方法“ fun”不会像预期的那样使“自身”引用子代。

后期静态绑定的概念引入了一个新关键字“ static”,该关键字在使用时将功能绑定到运行时类或首次使用该功能的类。除此之外,任何静态函数或变量通常在运行时而不是在编译时执行。因此,如果需要将值动态分配给静态变量,则它会在运行时发生,这称为后期静态绑定。

示例

<?php
class student
{
   public static $my_name = 'Joe';
   public static function getName()   {
      return "The name of the student is : " . self::$my_name;
   }
   public static function getAge()   {
      echo static::getName();
   }
}
class Professor extends student
{
   public static function getName()   {
      return "The name of the student is : " . self::$my_name . " 并且年龄是24。-";
   }
}
student::getAge();
echo "\n";
Professor::getAge();
?>

输出结果

The name of the student is : Joe
The name of the student is : Joe 并且年龄是24。-

名为“ student”的类包含一个名称和一个获取名称的函数。另一个功能可以获取学生的年龄。名为“教授”的类扩展了学生类,并且该函数也被继承。获取年龄的函数在学生和教授的实例上都被调用。