You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:13:01