4

社内ストアからいくつかのデータを取得していますが、失敗した場合は非常に具体的な応答が得られます。strlen()この変数を呼び出すと、値 0 が返されます。また、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います。変数には、長さがゼロで、null ではなく、空の文字列ではないものを含めることができますか?

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 に答える