PHP技术问题:如何实现类中添加多个用户信息且不被覆盖
问题解决:存储所有用户信息的数组实现
你的问题出在类里用了单个变量$name存储用户名,每次调用add方法时,新用户名会直接覆盖旧值,所以最后只能保留最后一个添加的用户。要实现存储所有用户,需要把单个变量改成数组来存储多个值。
修正后的代码
class Users{ public $users = []; // 初始化空数组用于存储用户 function add($name){ $this->users[] = $name; // 将新用户追加到数组末尾 } } $users = new Users(); $users->add('Jane'); $users->add('Rick'); $users->add('Niles'); var_dump($users);
输出结果
执行后会得到包含所有三个用户名的数组:
object(Users)#1 (1) { ["users"]=> array(3) { [0]=> string(4) "Jane" [1]=> string(4) "Rick" [2]=> string(5) "Niles" } }
关键改动说明
- 将原来的
public $name替换为public $users = [],用数组承载多个用户数据 add方法不再直接赋值覆盖,而是通过$this->users[] = $name把新用户追加到数组中,确保每次添加都保留之前的所有数据
内容的提问来源于stack exchange,提问作者Johnny Bravo
相关产品推荐
相关产品推荐

