Когда я использую if / endif против If {}?

Ну, вопрос сам по себе.

В 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 } ?> 

Related of "Когда я использую if / endif против If {}?"

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

 <?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) .