配列の書き方


はじめに

PHPで配列を書く時

php
$array = [
    "foo" => "bar",  
    "bar" => "foo",  
];

のような書き方が主流だと思う。しかし、PHP 5.4以前のバージョンでは上記の記述はできず、

php
$array = array(  
    "foo" => "bar",  
    "bar" => "foo",  
);

と記述する必要がある。なお、PHP 5.4以降のバージョンでも後者の書き方は許可されている。

PHP: 配列 - Manual

先日の出来事

CakePHP2を使って作ったサイトを本番環境に移行する作業をしていた。本番環境に移行後、下記のエラーが大量発生!

error
Parse error: syntax error, unexpected '[' in x.php on line x

あら…

本番環境はPHP5.3だから確かに$array = [];表記はエラーになる…でも

インストール - 2.x

によると、CakePHP2はPHP 5.3.0以上をサポートしているから、$array = [];表記はしてないはず…

調査結果

開発者が追加したコードに$array = [];表記が大量に混じっていた。そして開発環境のPHPバージョンが5.4であったため、開発中はエラーにならなかった。

なんと…
エラー箇所を全て修正する?
でも開発環境と本番環境でPHPのバージョンが違うなら、他にもエラーが出る可能性も…

結果

本番環境のPHPバージョンを5.4にすることで解決。

所感

開発環境の定義をしっかりと行う!