Ну, сам вопрос объяснительный.
В PHP, когда я использую нотацию if/endif
вместо стандартной нотации if(something){}
?
Пример:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
Versus:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
Ну, сам вопрос объяснительный.
В PHP, когда я использую нотацию if/endif
вместо стандартной нотации if(something){}
?
Пример:
<?php if($a == 5): ?>
A is equal to 5
<?php endif; ?>
Versus:
<?php if($a == 5){ ?>
A is equal to 5
<?php } ?>
Другие дали ответ "для шаблонов", но на самом деле не объяснили почему. Кудрявые скобки отлично подходят для обозначения блоков, но они полагаются на отступы, чтобы их можно было читать четко. Так что это довольно ясно:
<?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;
Содержание кода более четко показывает, что делается. Для этого ограниченного случая это более разборчиво.
Короткий ответ:
Всегда используйте 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.
Оба метода приемлемы. Некоторые утверждают, что альтернативный синтаксис (endif) более разборчив в шаблонах. IMHO, с современной синтаксической раскраской/подсветкой ошибки, которая больше не выполняется. Просто выберите стиль и придерживайтесь его.
Это стилистический выбор. Они аналогичны, и один не лучше другого.
Первый может быть хорош в определенных обстоятельствах, потому что его легче читать при погрязнении в середине набора блоков HTML.
В основном я использую if/endif при остановке и запуске блока кода php между ними, поэтому почти всегда, когда выводится raw html.
Например:
<?php if ($n == 3): ?>
Lorem ipsum.
<?php endif; ?>
Это выглядит, по крайней мере, на мой взгляд, лучше, чем следующее:
<?php if ($n == 3) { ?>
Lorem ipsum.
<?php } ?>
Вы можете использовать оба варианта, но предпочтительный стиль и известный в настоящее время стиль являются стандартными if(expr)
.