PHP尝试创建一个方法,可以同时添加多个元素而不会覆盖

agxfikkp  于 2023-06-21  发布在  PHP
关注(0)|答案(2)|浏览(145)

我试图在类中创建一个数组,其中将包含一些用户的信息,主要问题是,每个最后一个用户的名字是由下一个覆盖,需要创建一个数组,其中包含所有这些。

class Users{
    public $name;
    function add($name){
        $this -> name = $name;
    }
    
}

$users = new Users();
$users->add('Jane');
$users->add('Rick');
$users->add('Niles');

var_dump($users);

输出应包含每个用户名

g6ll5ycj

g6ll5ycj1#

为什么不直接使用数组呢?

class User
{
    protected $name;
    public function __construct($name) {
        $this->name = $name;
    }
}

$users = [];
$users[] = new User('Jane');
$users[] = new User('Rick');
$users[] = new User('Niles');
anauzrmj

anauzrmj2#

如果你想让一个对象拥有所有用户的列表,你必须将class属性转换为array type你可以像这样重构代码

class Users{
    public $names = array();
    function add($name){
        $this->names[] = $name;
    }
    
}

$users = new Users();
$users->add('Jane');
$users->add('Rick');
$users->add('Niles');

var_dump($users);

相关问题