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 回答