4

我正在从内部商店检索一些数据,如果出现故障,我会得到一个非常具体的响应。调用strlen()此变量将返回零值。它也不等于 NULL 或 ""。我正在使用此代码进行测试:

if ($data === NULL)
{
    echo("data was null\n");
}
else if ($data === "")
{
    echo("data was empty string\n");
}
else if (strlen($data) == 0)
{
    echo("data was length zero\n");
}

这个结果正在输出data was length zero。变量可以包含什么长度为零、不为空且不是空字符串?

4

3 回答 3

2

则返回值必须为 false。

 echo strlen(false); // outputs 0 
于 2013-07-11T22:16:13.193 回答
1

这可能不是一个答案。我只能回答如果你提出一个var_dump($data);但我认为对我来说也令人惊讶的是:

$data = "\0";

if ($data === NULL)
{
    echo("data was null\n");
}
else if ($data === "")
{
    echo "data was empty string\n";
}
else if (strlen($data) == 0)
{
    echo "data was length zero\n";
} 
else 
{
    echo "something strange happened\n";
}

输出:something strange happened

:)

于 2013-07-11T22:17:34.810 回答
0

试试这个 :

    $data = false;

我不确定为什么 false 有一个 strlen,但它确实有。

于 2013-07-11T22:17:23.270 回答