3

phpunitassertNotEmpty("0")で行うと失敗します。"0"は長さ 1 の文字列である ため、失敗することはありません。

次のテストは成功します。

$this->assertEquals(1, strlen("0"));
$this->assertInternalType('string', "0");

では、なぜそれ"0"が空であると言うのですか?assert ステートメントは内部的に整数に変換して空であることを確認しますか?

4

1 に答える 1

10

http://php.net/manual/en/function.empty.phpから

次のものは空と見なされます。

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
于 2013-07-24T10:14:09.727 に答える