我制作了一个对象,它应该代表一个数组,但有一些方法。所以我让它实现了本机接口:IteratorAggregate
和Countable
. 这样你就可以foreach
了count
。到目前为止,一切都很好。
但现在我希望它也像数组一样评估。因此,如果count($object)
为零,if($object)
则应该评估为false
。有Comparable
接口之类的吗?
使用类型 Juggling。
您可以分配预期的 var 类型。
$object = count ( $object );
$object = (array) $object;
同样,如果您想为变量分配其他类型,这里是可能值的列表:
(int)
(bool)
(float)
(string)
(array)
(object)
(unset)
(binary)
还要检查 this 这个Comparable interface。
The documentation shows everything that evaluates to false:
FALSE
itself0
(zero)0.0
(zero)"0"
NULL
(including unset variables)As of this list an object will never be considered as false
. So the only way is to cast the value of count()
to boolean using (bool)
if you need to do a strict comparison as pointed out in Tomi Sebastián Juárez's answer.