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

あなたが与えた最初の例は、PHP5.4以降のものです。次のPHP5.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 に答える