php子类实例化父类,PHP-父类::在实例化类中

标签: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值