提问人:Johnny Bravo 提问时间:6/15/2023 更新时间:6/15/2023 访问量:24
PHP 尝试创建一个可以同时添加多个元素而不会覆盖的方法
PHP Trying to create a method which could add several elements at same time without overwriting
问:
我正在尝试在类中创建一个数组,该数组将包含一些用户信息,主要问题是每个最后一个用户名都被下一个用户名覆盖,需要创建一个包含所有用户名的数组。
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);
输出应包含每个用户名
答:
4赞
Rob Eyre
6/15/2023
#1
为什么不直接使用数组呢?
class User
{
protected $name;
public function __construct($name) {
$this->name = $name;
}
}
$users = [];
$users[] = new User('Jane');
$users[] = new User('Rick');
$users[] = new User('Niles');
评论
0赞
Sammitch
6/15/2023
然后,如有必要,您可以创建类似 UsersCollection 的东西,将它们存储在数组属性中,并具有知道如何对 User 对象进行操作以进行搜索等的方法。
0赞
oacastillol
6/15/2023
#2
如果希望对象具有所有用户的列表,则必须将 class 属性转换为数组类型,您可以像这样重构代码
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);
评论