为什么有不同的语法相同的结果?

时间:2010-06-11 11:18:50

标签: php syntax loops shortcode

为什么语法有不同的结果?

例如

# 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 个答案:

答案 0 :(得分:1)

冒号endif,endforeach等语法称为Alternative Syntax。我不能确定为什么这个功能存在,只是它确实存在并得到支持。我可以说我已经注意到替代语法更多地用于模板目的,其中很容易选择endif / endforeach而不是HTML标记中间的结束花括号。

<?=被称为短开标签。您可以在Are PHP short tags acceptable to use?

找到有关其使用所需的所有信息

答案 1 :(得分:1)

为什么结果会有所不同?没有括号的那个被称为alternative syntax for control structures并且非常有用,例如在处理HTML时。

<?php echo更加便携,因为可以禁用短打开标签,默认情况下禁用它们,因为PHP 5.3