You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP子类构造函数未正常工作,请求解析问题原因

问题原因分析:输出缺失用户名的问题

问题出在子类Customer的构造函数上:

  • 父类User的$name和$age属性是protected类型,子类本可以正常访问,但子类构造函数没有调用父类的构造函数来初始化这两个属性。
  • PHP中,子类构造函数不会自动执行父类的构造函数。当你创建Customer实例时,只会运行子类自己的构造函数,导致$this->name始终为空值,所以最终输出只显示 paid $100,缺失了用户名部分。

修复方案

在子类Customer的构造函数中,添加对父类构造函数的调用,初始化$name和$age:

class Customer extends User{
    private $balance;

    public function __construct($name, $age, $balance){
        parent::__construct($name, $age); // 调用父类构造函数初始化name和age
        $this->balance = $balance;
    }

    public function pay($amount){
        return $this->name . ' paid $' . $amount;
    }
}

内容的提问来源于stack exchange,提问作者Adithya Nethmini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:31:08