2012-06-14 59 views
2

該代碼失敗在某些機器:PHP關聯數組解析錯誤

// Parse error: syntax error, unexpected '[' ... 
return json_encode(self::GenerateSomeAssociativeArray($meta_file)["list"]); 

但這種有效的相同版本適用於所有的機器:

$foo = self::GenerateSomeAssociativeArray($meta_file); 
return json_encode($foo['list']); 

我以爲這是一個版本的問題,但我無法找到差異信息,可能是因爲我不熟悉的術語進行搜索。

+0

你會在語法/新增功能表上找到它。新features.php – mario

回答

3

你給第一個例子是PHP 5.4和更高推測。 請參見下面的PHP 5.4發佈公告:http://www.php.net/manual/en/migration54:

http://php.net/releases/5_4_0.php

<?php 
// Example #8 Array dereferencing 

function getArray() { 
    return array(1, 2, 3); 
} 

// on PHP 5.4 
$secondElement = getArray()[1]; 

// previously 
$tmp = getArray(); 
$secondElement = $tmp[1]; 

// or 
list(, $secondElement) = getArray(); 
?> 
2

之前5.4版本的PHP不允許數組索引操作符([])將被施加到不是變量的任何其他。

是的,真的。