Задать вопрос
@Senseich

Как работает оператор OR на примере функции fopen?

Помогите разобраться с одной тонкостью, которая не даёт мне покоя )

Из документации сказано , что оператор OR сначала присваивает, а затем второй операнд игнорируется:
// Константа false присваивается $f, а затем значение true игнорируется
// Действует как: (($f = false) or true)
$f = false or true;


1. Ок, первый вопрос, зачем тогда вообще второй операнд, если он игнорируется, можно просто написать $f = false ?

Но ладно, на примере функции fopen():
$write = fopen($path, 'w+') or die("не удалось создать файл");

Из документации: Возвращает указатель на файл в случае успешной работы, 
или FALSE в случае ошибки

Из правила видно, что если ошибка, то возвращает FALSE.
Из правила выше ($f = false) or true должно быть, что:
($write =  false) or die("не удалось создать файл");

die("не удалось создать файл") должно игнорироваться.

Я инсценировал ошибку, но сообщение "не удалось создать файл" всё равно вывелось, почему?

5ab7707373a9a163064444.jpeg
Меня этот OR запутал! )

  • Вопрос задан
  • 95 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@ynblpb_spb
дятел php
Если в левой части OR выражение, результат работы функции или присвоение будет равно булеву false, то выполнится правая часть оператора OR
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы