【发布时间】:2019-10-04 08:46:27
【问题描述】:
根据https://www.php.net/manual/en/function.readdir.php的信息,readdir()函数
可能返回布尔值 FALSE,但也可能返回非布尔值,其计算结果为 FALSE。
因此建议使用=== 进行测试。
这可能是什么非布尔值?在我的测试中,我只能得到一个错误的false,就像在下面的例子中一样:
$dirname='0'; // misinterpreted
print $dirname==false?'false':'true';
所有其他字符串都被解释为true。
是否有任何其他字符串会评估为假?或者是否有其他一些返回结果会被评估为假?
【问题讨论】:
-
布尔类型的手册列出了所有被认为是假的值:php.net/manual/en/…
-
@04FS 感谢您的参考。这表明唯一需要担心的 名称是
0。readdir()是否返回false或字符串以外的任何内容? -
readdir “成功时返回条目名称,失败时返回 FALSE” - 所以它不应该是字符串,除非它实际上是错误的。
-
@04FS 谢谢。您能否将您的 cmets 以答案的形式提出,以便我接受,并结束这个问题?