PHP前端开发

PHP子类如何使用父类的魔术方法?

百变鹏仔 1个月前 (12-15) #PHP
文章标签 子类

php子类如何使用父类的魔术方法

在php中,子类可以继承父类的所有方法,包括魔术方法。

案例:
父类p定义了魔术方法__set()来设置私有属性$name。

代码示例:

立即学习“PHP免费学习笔记(深入)”;

class p {    private $name = "";    function __construct() {        $this->name = "hello";    }    public function __set($name, $value) {                $this->$name = $value;          }    public function showname() {        echo $this->name;    }}

子类c继承了父类p。

代码示例:

立即学习“PHP免费学习笔记(深入)”;

class C extends P {    function __construct() {        parent::__construct();        $this->name = "你好";    }}

在子类c中调用父类构造方法,先得到$this->name = 'hello'。随后进行赋值,会直接调用__set()方法,对name进行赋值'你好'。

因此,$this->showname()输出'你好'。

原理:
子类继承父类后,则子类就可以使用父类中所有的方法,包括魔术方法。子类中调用父类构造方法,会先执行父类的构造方法,然后执行子类的构造方法。