empty()行为

时间:2010-04-27 07:32:51

标签: php properties

也许我在问一个愚蠢的问题,但我无法理解这种行为:

<?php
    $this->meeting->google_id = 'test';
    $test = $this->meeting->google_id;
    var_dump(empty($test));
    var_dump(empty($this->meeting));
    var_dump(empty($this->meeting->google_id));
?>

给出输出:

bool(false) bool(false) bool(true) 

为什么empty($this->meeting->google_id);的结果是真的?那我该怎么检查这个属性呢?

1 个答案:

答案 0 :(得分:3)

请在此处阅读:http://www.php.net/manual/en/function.empty.php#93117

基本上,PHP magic methods会导致意外行为。

如果类具有特殊的__get魔术方法,您可以读取/写入类中的虚拟成员。但是,实际值无法通过__isset魔术方法(empty使用的方法)进行检查,因为它不是该类的显式成员。