PHP类与对象后期静态绑定操作实例详解

PHP 支持两种绑定方法:早期绑定和后期静态绑定

– 早期绑定:方法绑定在对象创建时。

– 后期静态绑定:方法在调用时绑定。

后期静态绑定允许你调用未定义在对象中的方法。

这是通过 PHP 的静态分派实现的。示例:

class Person {
    public $name;
  
    function __construct($name) {
        $this->name = $name;    
    }
}

class Student extends Person {  
  
}

$student = new Student('John');

$student->age = 25; // 后期静态绑定

echo $student->age; // 25
echo $student->name; // John

这里我们调用了 $student->age 这个方法,但是Age方法没有定义在Student类中。

通过后期静态绑定,PHP会首先检查Student类中是否有age方法,然后逐级向上继承检查,如果都没有找到,则创建一个新的属性。

所以这里会为$student对象动态添加一个age属性。

再看另一个例子:

class A {
}
class B extends A {
}
$obj = new B;
$obj->name = 'John';
echo $obj->name; // John

这里我们为B类对象添加了一个name属性,B类本身并没有定义name属性或方法。

但通过后期静态绑定,PHP会动态为$obj对象添加一个name属性。

总的来说,后期静态绑定允许我们为对象动态添加未在类中定义的属性和方法,这增加了PHP的灵活性

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论