为什么将非布尔变量与“false”进行比较?在while循环的条件下


Why is a non-boolean variable being compared to "FALSE" in the condition of the while loop?

while (($line = fgetcsv($file)) !== FALSE) {...}

在给定的代码行中,while循环中发生了两件事。第一个是将fgetcsv($file)赋值给$line(这是一个数组,fgetcsv($file)返回一个数组),另一个是条件检查:while($line !== FALSE)

我的问题是$line不是布尔变量。那么,如何将它与FALSE进行比较呢?

fgetcsv()到达文件末尾时,$line变为false

fgetcsv()在提供无效句柄时返回NULL或在其他错误时返回FALSE, 包括文件结束