Подтвердить что ты не робот

Если иначе встраивание внутри html

Каков правильный способ вложения, если else и elseif условия внутри html?

4b9b3361

Ответ 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

"В течение нескольких лет было рекомендовано, чтобы вы не использовали короткий тег" 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) или нет. Я обновлю этот ответ, когда получу дополнительную информацию. Но на основе многих документов, найденных в Интернете, о сокращении вреда для переносимости. Я все равно лично не буду использовать его, поскольку он не дает преимуществ, и вы должны полагаться на настройку, которая не включена для каждого веб-хоста.