标签:php
我想知道为什么没有$parent-> function(); PHP中的语法,但是我们可以使用parent :: function();看起来像是在静态类中使用的.我是否缺少一些php oop基础知识?
解决方法:
我承认这似乎很奇怪-并且您没有错过手册中的任何内容^^
但是:
>通常,当子类重新定义父类中已经定义的方法时,您希望子类的方法完全覆盖父类的方法
>我承认,除了__construct之外,这可能就是为什么在手册中明确指出必须自己调用父级的__construct方法的原因.
>一般而言,在使用非静态方法时,只需使用$this在子类或父类的同一实例中调用方法;无需知道该方法的实际位置.
>使用parent ::即使看起来像静态调用,也可以正常工作
这是一个显示parent ::的代码示例:
class Father {
public function method() {
var_dump($this->a);
}
}
class Son extends Father {
protected $a;
public function method() {
$this->a = 10;
parent::method();
}
}
$obj = new Son();
$obj->method();
您将得到以下输出:
$/usr/local/php-5.3/bin/php temp.php
int(10)
这表明父类中的方法可以访问$this和子类中定义的属性.
标签:php
来源: https://codeday.me/bug/20191024/1919297.html