我面对这种困境,基本上我想创建一个错误对象,如果某个任务没有得到满足。现在要了解我要发回给用户的内容,我需要检查该错误对象是空的还是有数据。问题是:
$obj = new stdClass();
var_dump(empty($obj)); // returns false
正如您在此 example
中所看到的那样,它正在返回false
而不是true
,因为它&#39 ;空。
$o = new stdClass();
$a = array();
var_dump(empty($o));
var_dump(empty($a));
这适用于数组,但有没有人知道为什么这会发生在对象上?
我已经阅读了answers like this,声明将其转换为数组,但我的问题是:
为什么它在空的时候会返回false?它背后的逻辑是什么? 如果我想要一个阵列,我会从那开始。
答案 0 :(得分:2)
来自php.net:
以下内容被认为是空的:
"" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) $var; (a variable declared, but without a value)
您创建的每个对象都不会为“空”。