Правильность кода

Sunday

Cōgitō ergō sum
Регистрация
13 Дек 2009
Сообщения
823
Реакции
342
Подскажите, как работает условие с восклицательным знаком, которое идёт после второго "или"? Я не могу уловить смысл восклицательного знака здесь
PHP:
if (!file_exists($COOKIE["FILE"]) || (filesize($COOKIE["FILE"]) < 600) || !((filemtime($COOKIE["FILE"])) > time() - 3600*24)) {
...
}
 
Имя файла берется из $COOKIE["FILE"]. Например, там /etc/passwd

Условие сработает если выполнено одно из условий
1. Файл не существует
2. Размер файла менее 600 байт
3. Файл изменен более, чем 24 часа назад

PS
Восклицательный знак больше походит на костыль, когда не хочешь разбираться в условии. Проще было знак ">" заменить на "<"
 
В догонку к вышесказанному, такой курьез возникает часто из-за сложностей уловить местоположение скобок. В итоге не сразу легко уловить к какому блоку относится !. Современные редакторы не только выделяют скобки парами но и предлагают опционально раскрашивать блоки. Часто данный функционал реализован внешними плагинами. Полезно не только новичкам. Уберегает от механических ошибок. Например в семействе продуктов от Jetbrains есть внешний плагин Rainbow Brackets. Попробуйте.
 
Назад
Сверху