PHP5.4から可能になった連想配列記法をPHP5.3.3で使ってエラー出てた話
昔作ったアプリケーションを久しぶりに動かしてみたらシンタックスエラーが出たので、ソースの該当箇所を見てみたら連想配列を以下のように指定していた。
$data = [ 'api_key' => $api_key, 'limit' => $limit, 'offset' => $offset ];
ばっちりとマニュアルに書いてあるけど、この指定方法はPHP5.4以降で可能となったものだ。
$ php -v PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
案の定サーバのPHPバージョンは5.3.3。ということで以下のように従来方式で書き直したらエラーも消えました。
$data = array( 'api_key' => $api_key, 'limit' => $limit, 'offset' => $offset );
というか開発当時からVPSの環境は変えてないような気がするけど、昔は何故これで動いてたのかちょっと謎。