这是我的问题:
$Me[1] = new User(1);
$Me[2] = new User(2);
$Me[3] = new User(19);
$Me[4] = new User(75);
$Me[5] = new User(100);
foreach ($Me as $k) echo $k->getId();
我正在尝试使用不同的ID创建5个用户。问题是,ID为2的用户'覆盖'ID为1的用户,ID为3的用户'覆盖'具有ID 2的用户,具有ID 4的用户'覆盖'具有ID 3的用户,具有ID的用户5'覆盖'ID为4的用户。
我真的不知道如何解决这个问题,有人可以帮助我吗?
提前感谢您的帮助!
我无法从父类获取$ id。似乎最后一个类初始化了“覆盖”所有值(也许因为我宣布它是静态的?但我怎么能得到它?)..
这是我的班级:
class User {
public static $id;
public function __construct($id) {
$this->id = $id;
}
public function getId() {
return $this->id;
}
}
class Sub extends User {
public function __construct($id) {
}
public function printUserLink(){
echo '<a href="userprofile.php?userid='.parent::getId().'">Go to user profile</a>';
}
}
如何在“Sub”类中获取ID?
答案 0 :(得分:1)
问题可能在于您的User类。这个简单的例子按预期工作:
class User {
private $id;
public function __construct($id) {
$this->id = $id;
}
public function getId() {
return $this->id;
}
}
$Me[1] = new User(1);
$Me[2] = new User(2);
$Me[3] = new User(19);
$Me[4] = new User(75);
$Me[5] = new User(100);
foreach ($Me as $k) echo $k->getId() . "\n";
输出:
1
2
19
75
100
如果没有User类的详细信息(由ircmaxell建议),解决问题将会非常棘手。