Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Почему возвращает html, который вне блока php?

#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

Комментариев нет:

Отправить комментарий