您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PHP致命错误:无法访问空属性

PHP致命错误:无法访问空属性

您以错误的方式访问属性。使用$this->$my_value = ..语法,可以使用$ my_value中的值名称设置属性。你想要的是$this->my_value = ..

$var = "my_value";
$this->$var = "test";

是相同的

$this->my_value = "test";

为了解决您的示例中的一些问题,下面的代码一个更好的方法

class my_class {

    public  $my_value = array();

    function __construct ($value) {
        $this->my_value[] = $value;
    }

    function set_value ($value) {
        if (!is_array($value)) {
            throw new Exception("Illegal argument");
        }

        $this->my_value = $value;
    }

    function add_value($value) {
        $this->my_value = $value;
    }
}

$a = new my_class ('a');
$a->my_value[] = 'b';
$a->add_value('c');
$a->set_value(array('d'));

这样可以确保在调用set_value时,my_value不会将其类型更改为字符串或其他类型。但是您仍然可以直接设置my_value的值,因为它是公共的。最后一步是将my_value设为私有,并且仅通过getter / setter方法访问my_value

php 2022/1/1 18:15:14 有648人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶