2012-07-31 65 views
1

我可以請知道差異:如果(){

<?php if() : ?>  
<?php endif; ?> 

<?php if() { ?> 
<?php } ?> 
+2

沒有。只有兩種不同的寫作方式。 ['閱讀手冊'](http://php.net/manual/en/control-structures.if.php) – diEcho 2012-07-31 04:41:21

+0

我認爲兩個例子之間沒有任何區別。醜陋的PHP語法... – CyberDem0n 2012-07-31 04:41:24

+0

首選項。使用你喜歡的。 – animuson 2012-07-31 04:42:14

回答

3

之間的差別,這只是alternative syntax稱爲braceless語法

如果你遵循MVC設計模式,那麼只有你的視圖文件應該有 HTM L在他們開始。在這些文件中使用無支架語法 只會進一步將它們與代碼的其餘部分進行主題分離。

無花紋語法的主要優點是,在跳入和跳出PHP模式時,大括號會丟失,特別是如果您使用php短標籤。

+1

短標籤的主要問題是動態XML文件是非常尷尬的那''?xml version =「1.0」?>'是必需的標題。 – zzzzBov 2012-07-31 04:46:36

+0

@zzz感謝您的信息:我真的不知道這一點。 – diEcho 2012-07-31 04:47:40

+0

我想說當你嘗試生成一個RSS feed時,你很可能會遇到這個問題。它不會經常出現,你可以用回聲聲明來解決它,但這就是爲什麼短標籤不鼓勵的原因,但短回聲標記'''在PHP 5.4中默認啓用(http: //programmers.stackexchange.com/a/151694/7865)。 – zzzzBov 2012-07-31 04:51:46

3

沒有區別,取決於您的偏好。

就我個人而言,我使用前者時在視圖內,後者在其他地方。

裏面一個觀點:

<div> 
    <p>Cake?</p> 
    <?php if (true): ?> 
    <p>Cake!</p> 
    <?php endif; ?> 
</div> 

在別處:

echo 'Cake?'; 
if (true) { 
    echo 'Cake!'; 
} 
+0

+1在視圖內使用。它更乾淨,但它確實歸結爲個人喜好:) – 2012-07-31 04:43:51