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

PHP类构造函数初始化后属性为空,为何无法正常工作?

问题根源:构造函数命名错误

嘿,这问题其实挺常见的——你把PHP构造函数的名字写错啦!

在PHP里,类的构造函数必须是两个下划线开头的__construct(),但你写的是_construct()(只有一个下划线)。这就导致PHP根本不把这个方法当成构造函数来执行,当你实例化Zip类的时候,$this->root完全没被赋值,自然就是null,调用print()方法时当然没输出啦。

修正后的代码

只需要把构造函数的名称改成正确的写法就行:

class Zip { 
    private $root; 
    // 这里改成两个下划线的__construct
    public function __construct() { 
        $this->root = dirname(__DIR__); 
    } 
    public function print(){ 
        echo $this->root;
    }
}
额外小建议

还有个细节要提醒你:print是PHP的保留关键字,虽然现在用它当方法名不会直接报错,但为了代码更规范、避免潜在问题,建议把方法名改成printRoot()这类非保留字,比如:

public function printRoot(){ 
    echo $this->root;
}

这样用起来会更稳妥哦~

内容的提问来源于stack exchange,提问作者user561787

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:11:02