如果你对一个没有元素的数组执行 empty() ,你会得到真实的。但是,如果你对一个计数为 0 的 Countable 对象执行 empty() ,那么你会得到错误。在我看来,一个 0 计数 Countable 应该被认为是空的。我错过了什么吗?
<?php
class Test implements Countable
{
public $count = 0;
public function count ()
{
return intval (abs ($this -> count));
}
}
$test = new Test ();
var_dump (empty ($test));
var_dump (count ($test));
$test -> count = 10;
var_dump (empty ($test));
var_dump (count ($test));
我本来希望第一次调用 empty 会返回 true,但事实并非如此。
出现这种情况是否有合理的理由,或者它是一个错误?