Смотрю документацию php о функции exit
. Натыкаюсь на такой пример:
$file = fopen($filename, 'r')
or exit("Невозможно открыть файл ($filename)");
В самой документации на счёт or
есть информация только как о логическом операторе. Я правильно понимаю, что этот or
работает как конструкция try-catch
? Если слева от or
- false или функция, возвращающая false или ошибку, то выполняется код справа?
Как уже ответили, это действительно алиас ||
1.
Но это не аналог try...catch
, так как последний ловит выброшенные исключения, а ||
выбирает из операндов.
Конструкция вида $file = open(...) or die('Cannot open');
использует особенность вычисления оператора OR
: если левый операнд равен true
(или тому, что приводит к true
в логическом контексте), то правый не вычисляется.
Поэтому либо файл открывается (функция вернёт true
), либо вычисляется второй аргумент, в этом примере, останавливает скрипт с выводом ошибки.
Похожий вопрос на enSO: Logical Operators, || or OR?.
1 Приоритет токена ||
выше, чем or
, спасибо @tutankhamun.
Это синоним ||
со всеми вытекающими в PHP. Try-catch
ловить будет, если в исключении true-false
, 0-1
и т.д.
Как сделать вывод постов из таблицы events только тех кто имеет в столбце active параметр active
Работаю с api стороннего сервиса, обрабатываю форму, данные с которой отправлены аяксомФорма состоит из обычных полей и поле с файлом, при...
Существует проблема при фильтрации новостейСниппет обрабатывает только первый GET запрос, при повторном запросе данные остаются неизменными