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子类如何使用父类的魔术方法?的详细内容,更多请关注其它相关文章!