#php
По идее блок html должен попадать под условие if и выполняться - if true. В данном случае - false, но html возвращает.Этот html-код попадает в блок выполнения php - кода (if true)
Ответы
Ответ 1
писать надо так:Этот html-код попадает в блок выполнения php - кода (if true)
это Альтернативный синтаксис управляющих структур или так:Этот html-код попадает в блок выполнения php - кода (if true)
по обычному стандарту расстановки скобок в управляющей конструкции. строго говоря, этот пост не объясняет, почему не работает. – @Ипатьев Собсн, я этот момент упустил. Но это уже можно посмотреть в соседних ответах участников @Ипатев и @vp_arth Не думаю, что они их удалят))Ответ 2
Я думаю, надо все-таки явно написать, почему строчка выводится. Без определения области действия, операторы РНР действуют только на следующий оператор. То есть, if (false) echo 1; echo 2; разумеется, этот код выведет только 2. Если же нам надо, чтобы в область действия попало больше операторов, ее надо обозначить явно. if (false) { echo 1; echo 2; } Этот код не выведет ничего. Но остается вопрос, почему РНР не воспринял оператор вывода HTML, который, вроде бы, идет самым первым после условия. Ответ на этот вопрос дал vp_arth - потому что закрывающий тег РНР действует так же и как ограничитель оператора. То есть в итоге у автора получилось условие, действующее на пустой оператор: if ($shop == "close") ; # ^ оператор видишь? И я нет. А он есть! и дальнейший код уже под его действие не попал.Ответ 3
Конструкция ?> предполагает автоматическую подстановку точки с запятой. Ваш код аналогичен следующему: Этот html-код попадает в блок выполнения php - кода (if true)'; echo "Покупаю хлеб"; echo "Иду домой"; Вам следует явно определить область действия оператора if: С помощью фигурных скобок: Text С помощью альтернативного синтаксиса: Text
Комментариев нет:
Отправить комментарий