PHP完全是我瞎折腾学会的,没有系统地学过这门语言,所以踩到坑是正常的。
我博客程序中有一个查询文章的函数,此函数在失败时返回false,成功时返回查询到的文章数组。我想当然地认为count只会对数组有效,对其它值应当返回0,但结果却不是。
官方文档说:Returns the number of elements in array_or_countable. If the parameter is not an array or not an object with implemented Countable interface, 1 will be returned. There is one exception, if array_or_countable is NULL, 0 will be returned.
对于数组或可计数的东西,返回元素的个数;如果不是数组或不可计数,则返回1;还有一个例外,就是参数为null时,返回0。
我就应得非常奇怪,为什么当不是数组或不可计数时返回1?故意留坑吗?无暇去看源代码。。。
所以以后判断的时候还是先判断下是否是数组,然后再计数。is_array & count。