Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 修改存储对象_Php - Fatal编程技术网

Php 修改存储对象

Php 修改存储对象,php,Php,我有两个类,一个存储对另一个的多个引用。在创建第二个类的新实例之后,我以后可能必须更改它的属性,并且希望它更新对该对象的所有引用。有没有办法使对象实例始终按引用传递,以便在对象中更新属性时,它也会更新对该对象的所有其他引用 类用户{ private$members=array(); 公共函数addMember($id){ $member=新成员($id); 数组推送($members,$member); 返回$member; } } 类用户{ 公费$id; __构造($id){ $this->i

我有两个类,一个存储对另一个的多个引用。在创建第二个类的新实例之后,我以后可能必须更改它的属性,并且希望它更新对该对象的所有引用。有没有办法使对象实例始终按引用传递,以便在对象中更新属性时,它也会更新对该对象的所有其他引用

类用户{
private$members=array();
公共函数addMember($id){
$member=新成员($id);
数组推送($members,$member);
返回$member;
}
}
类用户{
公费$id;
__构造($id){
$this->id=$id;
}
公共函数addProperty($propName,$propValue){
$this->{$propName}=$propValue;
}
}
因此,目前通过此设置,我可以创建一个新成员并将其添加到成员数组中:

$users=新用户();
$user=$users->addMember(1);
但如果我尝试向成员添加新属性,则如下所示:

$member->addProperty(“职务”、“开发人员”);
该属性未显示在成员数组中,因为未通过引用传递该成员。

请参见以下内容:

public function addMember($id) {
    $member = new Member($id);
    ....
这里您创建了一个类成员的对象,但我认为您需要

    $member = new User($id);

PHP7.3:属性出现在实例本身和
$members
数组中。