2013-07-19 49 views
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; 
    } 
} 

假。PHP空检查返回的不是空的变量

难道是php当它存储在数组中时检查类中的参数还是我错过了某些东西?

回答

3

您可以(应该?)实施__isset()方法。 manual on empty() says:

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

+0

为方便起见,这里是你想要什么snipplet:https://gist.github.com/pinoniq/6039523 – Pinoniq

+0

这是这种情况,谢谢:)我将不得不头痛得厉害想出来的,@Pinoniq也感谢snipplet。 – insanebits