我创建了一个用来表示数组的对象,但是有一些方法。所以我让它实现了原生接口:IteratorAggregate
和Countable
。这样你可以foreach
和count
。到目前为止一切都很好。
但是现在我希望它像数组一样进行评估。因此,如果count($object)
为零,则if($object)
会被评估为false
。是否有Comparable
接口或什么?
答案 0 :(得分:1)
您可以指定var的预期类型。
$object = count ( $object );
$object = (array) $object;
同样,如果你想为你的变量分配一些其他类型,这里是可能的值列表:
(int)
(bool)
(float)
(string)
(array)
(object)
(unset)
(binary)
另请查看此Comparable interface。
答案 1 :(得分:0)
documentation显示评估为false的所有内容:
FALSE
本身0
(零)0.0
(零)"0"
NULL
(包括未设置的变量)从此列表开始,对象永远不会被视为false
。因此,唯一的方法是使用count()
将(bool)
的值转换为布尔值,如果您需要按Tomi Sebastián Juárez的答案中的指示进行严格比较。