什么是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”的类包含一个名称和一个获取名称的函数。另一个功能可以获取学生的年龄。名为“教授”的类扩展了学生类,并且该函数也被继承。获取年龄的函数在学生和教授的实例上都被调用。