有人可以向我解释这种“怪异”行为是否符合我的期望。
我正在调试一些代码,并得到了这个:
我在$ data上创建了一些结果并创建了这个,以确保它的$ data有一些信息。
所以:
if(!$data || empty($data) || count($data) == 0)
远离if。
所以我做了一些var_dump来看和哇。
var_dump(!$data , empty($data) , count($data));
去吧:
bool(true)
bool(true)
int(1)
count data = 1和!$ data = true和empty($ data)= true?
我希望不是愚蠢的问题,如果是的话,我很抱歉。
答案 0 :(得分:8)
返回var中的元素数。如果var不是数组或 实现了Countable接口的对象,将返回1。那里 是一个例外,如果var为NULL,则返回0。
最有可能的是,$data
不是数组。用它上面的var_dump仔细检查
var_dump($data)
答案 1 :(得分:6)
计数返回var中的元素数。如果var不是数组或具有已实现Countable接口的对象,则将返回1。有一个例外,如果var为NULL,则返回0。
答案 2 :(得分:-1)
!0 = true;
empty(0) = true;
count(0) = 1
您的值为0或空字符串。