0
class Renderer
{
    private $data;

    public function __construct()
    {
        $this->data = array();
    }

    public function __get($key)
    {
        return array_key_exists($key, $this->data) ? $this->data[$key] : null;
    }

    public function __set($key, $value)
    {
        $this->data[$key] = $value;
    }
}

当我检查empty($renderer->param)它返回 false 即使var_dump($renderer->param)返回正确的值。

当它存储在数组中时,php会检查类内的参数还是我遗漏了什么?

4

1 回答 1

3

你可以(应该?)实现一个__isset()方法。手册上empty()

在不可访问的对象属性上使用 empty() 时,如果声明了 __isset() 重载方法,将被调用。

于 2013-07-19T14:32:41.853 回答