«

PHP8.0中类私有变量赋值报错:如何解决Attempt to assign property "to" on null错误?

时间:2024-12-6 21:04     作者:emer     分类:


php 类中变量存储数据的问题

在 php 8.0 中,遇到了使用类中的私有变量 _eml 存储数据时出现 attempt to assign property "to" on null 错误的问题。而这个问题在 php 7.x 版本中似乎不会出现。

在 php 8.0 中,以下代码会抛出上述错误:

class send
{
    private $_email;

    public function sendmail()
    {
        $this->_email->to = 'xxx';

        $this->do();
    }

    public function do()
    {
        // code
    }
}
登录后复制

这是因为 php 8.0 中对某些警告进行了更改,转为抛出错误异常:

立即学习“”;

解决此问题,需要在构造函数中将 _email 显式声明为 stdclass 实例或其他对象:

class Send
{
    private $_email;

    public function __construct()
    {
        $this->_email = new stdClass;
    }

    public function sendMail()
    {
        $this->_email->to = 'xxx';

        $this->do();
    }

    public function do()
    {
        // code
    }
}
登录后复制

以上就是PHP8.0中类私有变量赋值报错:如何解决Attempt to assign property "to" on null错误?的详细内容,!