почему есть другой синтаксис одного и того же результата? - PullRequest
1 голос
/ 11 июня 2010

Почему существует разный синтаксис одного и того же результата?

Например

# Example 1
if($myCondition == true) :
    #my code here
endif;

if($myCondition == true) {
    #my code here
}

# Example 2
foreach($films as $film) : 
    #my code here
endforeach;

foreach($films as $film) { 
    #my code here
}

Также я использовал <?= целую вечность, и теперь я понимаю, что это устарело, и я должен использовать <?php echo Так ли это и почему? Гораздо раздражает, когда приходится каждый раз это записывать.

Что ты думаешь?

Ответы [ 2 ]

1 голос
/ 11 июня 2010

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

<?php echo гораздо более переносим, ​​поскольку короткие открытые теги можно отключитьпо умолчанию отключены начиная с PHP 5.3

1 голос
/ 11 июня 2010

Синтаксис двоеточия endif, endforeach и т. Д. Известен как Альтернативный синтаксис . Я не могу сказать наверняка, почему эта функциональность существует, просто она существует и поддерживается. Могу сказать, что заметил альтернативный синтаксис, используемый в большей степени для шаблонных целей, когда легче выделить endif / endforeach, чем заключительную фигурную скобку в середине разметки HTML.

<?= известен как короткий открытый тег. Вы можете найти всю необходимую информацию о его использовании здесь Допустимо ли использование коротких тегов PHP?

...