2011-05-27 176 views
13

我注意到有些數組在最後一項之後沒有逗號。我有一個數組:數組中的最後一個元素後沒有逗號?

$first_name = array(
       'name'  => 'first_name', 
       'id'   => 'first_name', 
       'maxlength' => '20',    
       'class'  => 'text', 
       'placeholder' => 'First name', 
      ); 

我有一個逗號,但沒有PHP錯誤。我應該保留還是刪除逗號?

+1

這是一個有效的PHP語法。這很奇怪,但即使是經驗豐富的PHP程序員有時也會對此感到困惑。 – Nemoden 2011-05-27 00:58:34

回答

16

這是一種風格偏好,與在其他地方提到,但我會建議禁止在PHP中添加尾隨逗號,因爲它在某些語言中是語法無效的。特別是,我正在考慮IE瀏覽器處理Javascript中的這些類型的尾隨逗號,這些臭名昭着的錯誤是當IE在其他地方成功執行腳本失敗時發現的錯誤。它也將破壞JSON的有效性,並且在SQL列表中無效,還有其他潛在問題。

再次,這是一個偏好問題,但可能會導致您在其他方面的問題。

+4

我同意這一點 - 與JS的IE7已經咬傷我之前所描述的邁克爾 – jglouie 2011-05-27 01:00:43

+1

+1提及在IE的JS – Wiseguy 2011-05-27 01:03:40

+2

而這是不公平的,只是在這裏選擇IE瀏覽器。 SQL腳本也會失敗並顯示尾隨逗號,但RDBMS至少會在大多數情況下提供有用的錯誤消息。 – 2011-05-27 01:45:00

2

聽起來像一個風格偏好,如果兩者都是語法正確

4

兩者都是在不同的語言語法正確。如果留空,最後一個元素將被忽略。這是一個很好的小復活節彩蛋,內置於語言中,所以在開始修改數組之前,如果您手動添加一些數值,您無需繼續添加,

2

最後一個元素之後的逗號可能不適用於每種語言。然而,它使版本控制系統中的差異對於支持的語言更爲清晰。

/* From */ 
$a = array(
    'element_w', 
    'element_x', 
); 
/* To */ 
$a = array(
    'element_w', 
    'element_x', 
    'element_y', /* Only this line will show in version control. */ 
); 


/* From */ 
$a = array(
    'element_w', 
    'element_x' 
); 
/* To */ 
$a = array(
    'element_w', 
    'element_x', /* These two lines    */ 
    'element_y' /* will show in version control. */ 
); 
相關問題