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

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

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

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

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

代码示例:

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。

代码示例:

class C extends P {
    function __construct() {
        parent::__construct();

        $this->name = "你好";
    }
}

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

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

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

以上就是PHP子类如何使用父类的魔术方法?的详细内容,更多请关注其它相关文章!