PHP构造函数无法为对象属性赋值问题求助
解决PHP构造函数无法正常赋值的问题
嘿,我看到你遇到的问题啦——构造函数没法给对象属性正确赋值,导致后续没法输出属性内容对吧?问题其实出在你给类属性赋值的语法细节上!
错误原因
在PHP里,访问类的成员属性时,$this后面直接跟属性名就可以了,不需要额外加$符号。你现在构造函数里写的$this->$id属于「变量变量」的写法,它会把变量$id的实际值当作属性名去访问,而不是你预先定义好的public $id属性,这就导致传入的参数根本没赋到正确的属性上。
修正后的代码
User.class.php
class User { public $id=""; public $name=""; public $vorname=""; public $matrikelnummer=""; public $status=""; public $wl_platz=""; public $modul=""; public $versuch=""; public function __construct($id, $name, $vorname, $matrikelnummer, $status, $wl_platz, $modul, $versuch) { // 去掉属性名前多余的$符号,直接访问类定义的属性 $this->id = $id; $this->name = $name; $this->vorname = $vorname; $this->matrikelnummer = $matrikelnummer; $this->status = $status; $this->wl_platz = $wl_platz; $this->modul = $modul; $this->versuch = $versuch; } }
验证方式
修改完成后,你可以在main.php里测试输出属性,比如:
include_once('include/User.class.php'); // 确保传入的变量已经提前赋值 $user = new User($id, $name, $vorname, $mn, $status, $wl_platz, $modul, $versuch); // 尝试输出属性 echo $user->name; echo $user->matrikelnummer;
这样就能正常看到属性的内容啦!
内容的提问来源于stack exchange,提问作者Alexander Jung
相关产品推荐
相关产品推荐

