! == похоже на! =, Но в дополнение к проверке равенства он также проверяет тип.
Это важное различие, потому что иногда что-то является "ложным" или "правдивым", но не совсемЛогический тип со значением false или true.Например, число 0, как правило, рассматривается как ложное.
Вторая немного запутанная часть здесь заключается в том, что код проверяет false !== (assignment)
в цикле while.Это в основном проверка того, было ли присвоение действительным значением.
Итак, чтобы получить все это вместе, код:
while(false !== ($f=readdir($d))
... переводится в нечто вроде:
В то время как $f
назначен объект из readdir($d)
do ...