Я просматривал множество фрагментов кода, и я обнаружил, что люди могут использовать следующие два метода в выражении if
:
Способ 1:
<?php if ($condition) { // Do this } ?>
Способ 2:
<?php if ($condition): // Do this endif; ?>
Итак, какой метод более совместим с компиляторами PHP и версиями с PHP, или нет различимого различия между ними?
В большинстве случаев альтернативный (endif) синтаксис используется в сценариях просмотра. Часто бывает трудно увидеть / заметить конец инструкции if, поскольку фигурная скобка принимает только один символ, когда вы находитесь в нижней части файла, трудно сказать, является ли это концом if или foreach. Например:
<?php if ($condition): ?> <div>a huge block of html</div> <?php endif; ?>
Они оба точно эквивалентны. Обратитесь к руководству по стилю вашей организации, чтобы определить, что вы должны использовать.
Этот альтернативный синтаксис ничем не отличается от, возможно, более привычного синтаксиса. Просто не смешивайте их. Подобный синтаксис существует для while
, for
, foreach
и switch
.
Обычно вы должны выбрать предпочтительный синтаксис, основанный на читаемости, и предпочтения вашей команды.
То, что действительно может вас бросить, – это когда вы начинаете видеть утверждения «if», которые неправильно используют логические операторы объединения, например:
isset( $value ) AND print( $value );
Как я видел до сих пор, в моем приложении нет никакой разницы между ними, но у вас может быть много проблем, если вы смешаете их без правила, потому что можно получить некоторые ошибки, и вы будете искать кудрявые, но вы не использовали кудрявый. Выберите один синтаксис для использования эксклюзивного.
Единственное различие наблюдается в очень больших документах и проектах. Моя компания использует скобки, а не endif, endelse … поскольку мы работаем над очень крупными проектами. Когда вы сравниваете размеры файлов, есть преимущество в использовании брекетов. Меньшие файлы загружаются быстрее, поэтому мы сокращаем каждый байт. Мы прокомментируем конечную фигуру, чтобы было легче идентифицировать ее при тестировании, а затем удалить все комментарии для производства.