gpt4 book ai didi

PHP子类访问父类变量问题

转载 作者:行者123 更新时间:2023-12-03 00:59:25 28 4
gpt4 key购买 nike

我得到了这门课:

Class Username {
protected $id;
protected $username;
protected $contact_information;

private __construct($id) {
$this->id = (int) $id; // Forces it to be a string
$contact_information = new ContactInformation($this->id);
}
}

Class ContactInformation extends Username {
protected $mobile;
protected $email;
protected $nextel_id;
.....
}

我的问题是:我想访问 ContactInformation 上的 $id 和 $username (以及许多其他变量),但是 Parent::或 $this-> 不起作用,看起来就像每次我执行“new ContactInformation.. ..) PHP 创建一个“新用户名”。有机会从用户名访问当前值吗?

谢谢

最佳答案

为什么用户名构造函数是私有(private)的?如果您想让创建用户名变得不可能,请将 Username 类抽象化。另外,不要从父类创建新的联系信息。这是另一种表达方式:

abstract class Username {
protected $id;
protected $username;

public __construct($id) {
$this->id = (int) $id; // Forces it to be a string
}
}

class ContactInformation extends Username {
protected $mobile;
protected $email;
protected $nextel_id;
public __construct($id, $mobile, $email, $nextel_id) {
parent::__construct($id)
$this->mobile = $mobile;
....
}
}

现在,您不再直接实例化用户名(现在这是不可能的),而是创建一个 ContactInformation。然后,ContactInformation 在其自己的构造函数中调用 Username 构造函数。

关于PHP子类访问父类变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/831555/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com