如果一个数组只有一个元素,则计数结果为1。如果数组是不可数的,则结果也是1。那么,如何知道它是一个元素还是不可数的呢?编辑php-menue:如果var不是一个数组或实现了Countable接口的对象,则返回1。
来自PHP手册:http://www.php.net/manual/en/function.count.php
返回var中的元素数。如果var不是数组或具有已实现Countable接口的对象,将返回1。那里是一个例外,如果var为NULL,则将返回0。
你可以试试这个,
if (!method_exists($someVar, 'count') && !(is_array($someVar))) {
echo 'cannot count';
}
else {
echo count($someVar);
}
这应该适用于数组、对象和简单变量。
您可以使用is_array函数来检查变量是数组还是其他变量。
is_array($array)
"不可计数"的意思是"不是数组/对象"?
如果使用phps is_array()和is_object()进行测试,请参阅:http://php.net/manual/en/function.is-array.php
如果您引用了不实现可计数模式的特制数组或对象,那么这通常是有原因的。很可能,计算该结构中的元素是没有意义的。在这种情况下,首先使用method_exists($your_obj,'count')检查数组是否可计数。