2010-06-11 4 views
1

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

Например

# 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 Так ли это и почему? Это гораздо более раздражает, когда приходится писать это каждый раз.

Что вы думаете?

+0

Если вы должны написать ' 'более чем несколько раз, используйте механизм шаблонов. Наличие html и php-кода в одном файле крайне грязно. – ThiefMaster

+1

@ThiefMaster PHP сам по себе является движком шаблонов. Будете ли вы писать '{$ smartySucks}' или ' 'не имеет значения. Он становится грязным, когда вы начинаете смешивать логику с шаблоном. – Gordon

+0

@Gordon Что-то в вашем примере кажется необъективным: p –

ответ

1

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

<?= известен как короткий открытый тег. Вы можете найти любую информацию об этом пользователе Are PHP short tags acceptable to use?

1

Почему результат должен отличаться? Единица без скобок называется alternative syntax for control structures и очень полезна, например. при работе с HTML.

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

+0

отключен по умолчанию, но поддерживается ли он или он устарел? – Lizard

+0

@Lizard устарел. Но он не будет удален. См. Ссылки, приведенные в http://stackoverflow.com/questions/2413661/php6-is-short-open-tag-removed-or-deprecated-or-neither – Gordon

Смежные вопросы