也许我在问一个愚蠢的问题,但我无法理解这种行为:
<?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);
的结果是真的?那我该怎么检查这个属性呢?
答案 0 :(得分:3)
请在此处阅读:http://www.php.net/manual/en/function.empty.php#93117
基本上,PHP magic methods会导致意外行为。
如果类具有特殊的__get
魔术方法,您可以读取/写入类中的虚拟成员。但是,实际值无法通过__isset
魔术方法(empty
使用的方法)进行检查,因为它不是该类的显式成员。