在phpunitassertNotEmpty("0")
中执行失败。它不应该失败,因为它"0"
是一个长度为 1 的字符串。
以下测试成功。
$this->assertEquals(1, strlen("0"));
$this->assertInternalType('string', "0");
那么,为什么它说"0"
是空的呢?assert 语句是否在内部将其转换为整数以检查是否为空?
在phpunitassertNotEmpty("0")
中执行失败。它不应该失败,因为它"0"
是一个长度为 1 的字符串。
以下测试成功。
$this->assertEquals(1, strlen("0"));
$this->assertInternalType('string', "0");
那么,为什么它说"0"
是空的呢?assert 语句是否在内部将其转换为整数以检查是否为空?
来自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)