2

此代码在某些机器上失败:

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

但是这个实际上相同的版本适用于所有机器:

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

我认为这是一个版本问题,但我无法找到有关差异的信息,可能是因为我不熟悉要搜索的术语。

4

2 回答 2

3

您给出的第一个示例是针对 PHP 5.4 的,并且应该更高。请参阅以下 PHP 5.4 发布公告:

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();
?>
于 2012-06-14T18:46:05.193 回答
2

5.4 之前的 PHP 版本不允许将数组索引运算符 ( []) 应用于除变量之外的任何内容。

对真的。

于 2012-06-14T18:45:00.647 回答