Когда я могу использовать if / endif и If {}? - PullRequest
10 голосов
/ 17 мая 2011

Ну, вопрос не требует пояснений.

В PHP когда я использую нотацию if/endif вместо стандартной нотации if(something){}?

Пример:

<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>

по сравнению:

<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>

Ответы [ 6 ]

15 голосов
/ 17 мая 2011

Другие дали ответ «за шаблонизацию», но не объяснили, почему. Фигурные скобки отлично подходят для обозначения блоков, но они как бы полагаются на отступы, чтобы их было понятно читать. Так что это довольно ясно:

<?php
if (1 == 2)
{
    while (1 < 2)
    {
        doSomething();
    }
}

Очевидно, какая скобка соответствует какой.

Если, однако, вы входите в HTML-блок, вы, вероятно, прекратите чистый отступ. Например:

<?php
if (1 != 2) { ?>
<div>This always happens! <?php while (true) { ?>
  <p>This is going to cause an infinite loop!</p>
<?php }
}

Трудно следовать. Если вы используете стиль endif, он выглядит немного чище:

<?php
if (1 != 2): ?>
<div>This always happens! <?php while (true): ?>
  <p>This is going to cause an infinite loop!</p>
<?php endwhile;
endif;

Содержание кода более четко показывает, что делается. Для этого ограниченного случая это более разборчиво.

15 голосов
/ 17 мая 2011

Краткий ответ:

Всегда используйте if($something) { } и в значительной степени никогда не используйте if/endif. Это стандартная версия, начиная с PHP 4.0.0, и хотя старый синтаксис не исчезает, этого ожидают все.

Если вы действительно ищете случай, когда вы можете использовать if / endif, тогда это при использовании php в качестве языка шаблонов.

Некоторым людям нравится что-то вроде этого:

<?php if ($foo): ?>
Hi There
<?php else: ?>
cya!
<?php endif; ?>

лучше, чем

<?php if ($foo) { ?>
Hi There
<?php } else { ?>
cya!
<?php } ?>

и imho это потому, что каждая строка «говорит», и это может быть полезно, когда между тегами php много html.

2 голосов
/ 17 мая 2011

Оба метода приемлемы. Некоторые люди утверждают, что альтернативный синтаксис (endif) более разборчив в шаблонах. ИМХО, с современной ошибкой окраски / подсветки синтаксиса, которая больше не действует. Просто выберите стиль и придерживайтесь его.

1 голос
/ 17 мая 2011

Вы можете использовать оба, но предпочтительным стилем и известным в настоящее время стилем является стандарт if(expr).

1 голос
/ 17 мая 2011

Я в основном использую if / endif при остановке и запуске промежуточного блока кода php, поэтому почти всегда, когда выводится необработанный html.

Например:

<?php if ($n == 3): ?>
Lorem ipsum.
<?php endif; ?>

Это выглядит, по крайней мере, на мой взгляд, лучше, чем следующее:

<?php if ($n == 3) { ?>
Lorem ipsum.
<?php } ?>
1 голос
/ 17 мая 2011

Это стилистический выбор. Они аналогичны и один не лучше другого.

Первый может быть хорошим в определенных обстоятельствах, потому что его легче читать, когда он находится в середине набора блоков HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...