2014-02-05 79 views
0

我有時從一個這樣的數組獲取值:$var = array ('key1' => 'value1')['key1'];,所以$var應等於value1PHP語法錯誤

我在服務器具有PHP v5.4.16運行這樣的代碼,例如,explode ('-', $str)[0];它工作正常。 現在,如果我將此代碼轉移到另一臺使用PHP v5.3.10的服務器,我得到一個錯誤(syntax error): syntax error, unexpected '[' ...

這是因爲版本? (我不這麼認爲,因爲版本之間的差異非常小..),或者在服務器中的一些設置? 任何人都可以啓發我嗎?

+3

PHP 5.4添加了短數組語法。 –

+0

所以這一切都是關於版本?好的謝謝(Y) – Masterakos

+2

它與短陣列語法無關,但與數組解引用無關。 –

回答

1

是的,這取決於您正在運行的PHP版本。作爲PHP docs mentions

爲PHP 5.4的能夠陣列取消引用 函數或方法調用直接的結果。之前只能使用 臨時變量。

從PHP 5.5開始,可以對數組進行數組解引用。

在PHP 5.3,你將不得不使用

$exploded = explode('-', $str); 
$first = $exploded[0]; 
// or 
list($first,) = explode('-', $str); 

在PHP 5.4及更高版本可以使用

$first = explode('-', $str)[0];