2010-06-11 172 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 2010-06-11 11:41:19

+1

@ThiefMaster PHP本身就是一個模板引擎。無論你是編寫'{$ smartySucks}'還是'<?php echo $ someVar; ''沒關係。只有當你開始將邏輯混合到模板中時它纔會變髒。 – Gordon 2010-06-11 12:02:37

+0

@戈登有關你的例子似乎有偏見:p – 2010-06-11 12:11:16

回答

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 2010-06-11 11:32:47

+0

@Lizard它已被棄用。但它不會被刪除。請參閱http://stackoverflow.com/questions/2413661/php6-is-short-open-tag-removed-or-deprecated-or-ne-中給出的鏈接 – Gordon 2010-06-11 12:05:08

相關問題