Задать вопрос
@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 запутал! )

  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@ynblpb_spb
дятел php
Если в левой части OR выражение, результат работы функции или присвоение будет равно булеву false, то выполнится правая часть оператора OR
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽