Каков правильный способ вложения, если else и elseif условия внутри html?
Если иначе встраивание внутри html
Ответ 1
Смотрите этот и его alternate, который имеет тенденцию более читабельны, если встроены внутри html-блоков.
Ответ 2
Я рекомендую следующий синтаксис для удобочитаемости.
<? if ($condition): ?>
<p>Content</p>
<? elseif ($other_condition): ?>
<p>Other Content</p>
<? else: ?>
<p>Default Content</p>
<? endif; ?>
Примечание. Отключение php
в открытых тегах требует, чтобы в вашей конфигурации был включен short_open_tags
, который является значением по умолчанию. Соответствующий условный синтаксис, зависящий от фигурной скобки, всегда включен и может использоваться независимо от этой директивы.
Ответ 3
<?php if ($foo) { ?>
<div class="mydiv">Condition is true</div>
<?php } else { ?>
<div class="myotherdiv">Condition is false</div>
<?php } ?>
Ответ 4
В ответе @Patrick McMahon второй комментарий здесь ($ first_condition равен false, а $ second_condition равен true) не совсем точен:
<?php if($first_condition): ?>
/*$first_condition is true*/
<?php elseif ($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<?php else: ?>
/*$first_condition and $second_condition are false*/
<?php endif; ?>
Elseif запускает, является ли $ first_condition истинным или ложным, как и дополнительные операторы elseif, если их несколько.
Я не эксперт по PHP, поэтому я не знаю, правильно ли это сказать, ЕСЛИ это ИЛИ, ДАЛЕЕ, или есть другой/лучший способ кодировать его в PHP, но это было бы важным отличием для тех, кто ищет ИЛИ условия по сравнению с другими условиями.
Источник - w3schools.com и мой собственный опыт.
Ответ 5
<?php if (date("H") < "12" && date("H")>"6") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/morning.gif"
<?php } elseif (date("H") > "12" && date("H")<"17") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/noon.gif"
<?php } elseif (date("H") > "17" && date("H")<"21") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/evening.gif"
<?php } elseif (date("H") > "21" && date("H")<"24") { ?>
src="<?php bloginfo('template_url'); ?>/images/img/night.gif"
<?php }else { ?>
src="<?php bloginfo('template_url'); ?>/images/img/mid_night.gif"
<?php } ?>
Ответ 6
Вы найдете несколько разных методов, которые люди используют, и у каждого из них есть свое место.
<?php if($first_condition): ?>
/*$first_condition is true*/
<?php elseif ($second_condition): ?>
/*$first_condition is false and $second_condition is true*/
<?php else: ?>
/*$first_condition and $second_condition are false*/
<?php endif; ?>
Если в вашем атрибуте php.ini short_open_tag = true
(обычно это находится на line 141
файла php.ini по умолчанию), вы можете заменить свой открытый тег php с <?php
на <?
. Это не рекомендуется, так как большинство срезов в реальном времени отключено (в том числе многие CMS, такие как Drupal, WordPress и Joomla). Я уже тестировал короткие открытые теги в Drupal и подтвердил, что он сломает ваш сайт, поэтому придерживайтесь <?php
. short_open_tag
по умолчанию не включен во всех конфигурациях сервера и не должен приниматься как таковой при разработке для неизвестных конфигураций сервера. Многие хостинговые компании отключили short_open_tag
.
Быстрый поиск short_open_tag
в stackExchange показывает 830 результатов. https://stackoverflow.com/search?q=short_open_tag
У многих людей есть проблемы с чем-то, с чем они просто не должны играть.
с некоторыми серверными средами и приложениями, короткие открытые теги php по-прежнему будут разбивать ваш код, даже если short_open_tag
установлен на true
.
short_open_tag
будет удален в PHP6, поэтому не используйте короткие теги.
все будущие версии PHP будут отбрасываться short_open_tag
- http://www.askapache.com/php/shorthand-short_open_tag.html
- https://softwareengineering.stackexchange.com/info/151661/is-it-bad-practice-to-use-tag-in-php
"В течение нескольких лет было рекомендовано, чтобы вы не использовали короткий тег" short cut "и вместо этого использовать полный тег сочетание. При широком распространении использования XML и использовании этих тегов других языках, сервер может легко запутаться и в конечном итоге разбор неправильного кода в неправильном контексте. Но поскольку этот короткий срез был особенностью такого долгого времени, он в настоящее время все еще поддерживается для обратной совместимости, но мы рекомендуем вам не использовать их." - Jelmer Sep 25 '12 в 9:00 php: "short_open_tag = On" не работает
и
Обычно вы пишете PHP следующим образом:. Однако если enable_short_tags, вы можете использовать:. Также теги сортировки предоставляют дополнительный синтаксис: который равна.
Короткие теги могут показаться классными, но это не так. Они вызывают только больше проблемы. Ох... и IIRC они будут удалены из PHP6. Крозин ответил 24 августа 10 в 22:12 Проблема с php short_open_tag
и
Чтобы ответить на вопрос, почему я цитирую Zend PHP 5: "Короткие теги были на какое-то время стандартом в мире PHP, однако, у них есть главный недостаток противоречия с заголовками XML и, поэтому несколько упали на обочину". - Пушистый апр 13 '11 в 14:40 Являются ли подходящие для PHP короткие теги?
Вы также можете увидеть, как люди используют следующий пример:
<?php if($first_condition){ ?>
/*$first_condition is true*/
<?php }else if ($second_condition){ ?>
/*$first_condition is false and $second_condition is true*/
<?php }else{ ?>
/*$first_condition and $second_condition are false*/
<?php } ?>
Это будет работать, но оно сильно осуждается, поскольку оно не считается разборчивым и не является тем, для чего вы бы использовали этот формат. Если у вас был PHP файл, в котором у вас был блок кода PHP, в котором внутри не было встроенных тегов, вы должны использовать формат скобок.
В следующем примере показано, когда использовать метод скобки
<?php
if($first_condition){
/*$first_condition is true*/
}else if ($second_condition){
/*$first_condition is false and $second_condition is true*/
}else{
/*$first_condition and $second_condition are false*/
}
?>
Если вы делаете этот код для себя, вы можете делать то, что вам нравится, но если вы работаете с командой на работе, рекомендуется использовать правильный формат для правильного обстоятельства. Если вы используете скобки во встроенных сценариях html/php, это хороший способ уволить, так как никто не захочет очистить ваш код после вас. ИТ-руководители будут заботиться о разборчивости кода и степени профессора колледжа по удобочитаемости.
UPDATE
основанный на комментариях от duskwuff, его все еще неясно, если стенография не рекомендуется (по стандартам php) или нет. Я обновлю этот ответ, когда получу дополнительную информацию. Но на основе многих документов, найденных в Интернете, о сокращении вреда для переносимости. Я все равно лично не буду использовать его, поскольку он не дает преимуществ, и вы должны полагаться на настройку, которая не включена для каждого веб-хоста.