2012-05-03 33 views
16

我一直在尋找通過的許多代碼段,我發現,人們可以使用以下兩種方法在if聲明:PHP中的大括號或冒號endif語句 - 哪一種提供更好的性能和代碼兼容性?

方法1:

<?php 
    if ($condition) { 
    // Do this 
    } 
?> 

方法2:

<?php 
    if ($condition): 
    // Do this 
    endif; 
?> 

那麼哪種方法更適合PHP編譯器和PHP版本,還是兩者之間沒有明顯的區別?

+3

翻轉硬幣,其個人選擇 – 2012-05-03 05:49:30

+3

我發現#1更方便,因爲它更接近於JavaScript語法,我通常會混合2. – Gerard

+0

我傾向於在我的編碼中使用它,並且它使我沒有麻煩,因爲我有效地縮進了我的代碼,允許我在代碼中看到分區。 –

回答

20

大多數情況下,在視圖腳本中使用替代(endif)語法。通常很難看到/注意到if語句的結束,因爲大括號只佔用一個字符,當您處於文件底部時,很難判斷它是否是fore或foreach的結尾。例如:

<?php if ($condition): ?> 

    <div>a huge block of html</div> 

<?php endif; ?> 
+7

雖然我不會敲任何人不有一個完整的IDE,當然有幾個編輯器可以免費獲得代碼摺疊(和塊標識)。 –

+1

如果你的函數太長,以至於你不能將一個結束括號與一個開始的大括號關聯起來,那麼你的問題中最少使用大括號和alt語法。 –

4

alternative syntax是沒有什麼不同,也許,更熟悉的語法。只是不要混合兩者。對於whilefor,foreachswitch存在類似的語法。

通常,您應該根據可讀性和團隊偏好選擇您的首選語法。

真正可能會引發你的是,當你開始看到「if語句」的誤用邏輯與運營商類似如下:

isset($value) AND print($value); 
6

他們都是完全等同。請諮詢您組織的風格指南以確定您應該使用哪一種。

+0

是的,但在我看來,一個可能不太兼容或更快。顯然,我可能是錯的。 – think123

+5

如果你正在運行的PHP版本不支持「替代」語法,那麼你有**更大的問題**比必須轉換你的代碼... –

0

正如我已經看到到現在爲止,我的應用程序,它們之間沒有什麼區別,但你可以有很多的問題,如果你沒有一個規則mixt他們,因爲它可能得到一些錯誤,你會搜索捲曲,但你沒有使用捲曲。 選擇一個使用獨佔的語法。

+0

答案不夠。更好的評論 –

0

唯一的區別是在非常大的文檔和項目中看到。我們公司使用大括號而不是endif,endelse ...當我們處理非常大的項目時。在比較文件大小時,使用大括號會有好處。較小的文件加載速度較快,所以我們努力減少每一個字節。我們將最終大括號註釋掉,以便更容易識別測試,然後刪除所有生產註釋。

相關問題