[PHP] short array syntaxを使うべきか使わないべきか

2019年4月22日

PHP テクノロジー プログラミング

IT業界にいると勉強をすることが欠かせません。 何故なら、常に新しい事を学んで行かなければ、取り残されてしまうから・・・ ・・・もちろん、こうした思考も重要ですが、レガシーな技術を重要視する思考も必要です。 とあるPHP系フレームワークの資料を読んでいた時に、PHPの配列記述の仕方がver5.4以降から「short array syntax」という構文が加わったとのことで、これまでの記述方法からショート配列記述に移行するかどうか少し思考したという話です。 ちなみに、php5.4の新機能に関する解説ページは以下のURLで参考にできます。 https://www.php.net/manual/ja/migration54.new-features.php もはや今現在の世の中php7.3を使うことがデフォルトになっている時に「今更何言うてんねん」と思われるかもしれませんが、少し重要な内容だと思ったので、ブログに書いてみました。

short array syntax概要

php5.4より前のバージョンでは配列を定義する書き方は以下のように行っていました。 <?php $array = array(100 , 200 , 300 , 400); $hash = array("a" => "aaa" , "b" => "bbb" , "c" => "ccc"); print_r($array); print_r($hash); ?> # Result Array ( [0] => 100 [1] => 200 [2] => 300 [3] => 400 ) Array ( [a] => aaa [b] => bbb [c] => ccc ) php5.4以降ではこれをシンプルに記述することができます。 <?php $array = [100 , 200 , 300 , 400]; $hash = ["a" => "aaa" , "b" => "bbb" , "c" => "ccc"]; print_r($array); print_r($hash); ?> #Result Array ( [0] => 100 [1] => 200 [2] => 300 [3] => 400 ) Array ( [a] => aaa [b] => bbb [c] => ccc )

構文についての検討

"array(...)"という記述を"[...]"という風に、javascriptのように記述できるようになるのですが、上記サンプルを見て気になる人もいると思いますが、連想配列記述も"[...]"で行なうという点です。 javascriptでは、hashの書き方は"{...}"と書くjson方式なのに対して、"[...]"と書き、その内容も"'a'=>'aaa'"というこれまでのPHP記述はそのままという、なんとなくWEBエンジニアが下記ミスをしそうな内容になっています。 もちろん、short array syntax記述を使わずにこれまでのarray(...)という記述を使っていても問題は無いようなので、どちらを使ってもいいらしいのですが、OSSライブラリなどを確認していると、array()記述の古い方法で書いているのがほとんどのようです。 下位互換を気にしているというよりは、これまでの書き方を変更する必要がまるでないというエンジニアの思考の現れにも感じます。

結論

古い記述方法が今後使用禁止になるという事ではないため、個人的には旧版記述で行っていきたいと考えます。 短縮記述をコーディングするエンジニアのコードが読めるようにこうした事は知識レベルで知っていないと、レビューする時に間違った指摘をしてしまいそうですね。 企業開発などでは、こうしたこともコーディング規約に盛り込んでいるんでしょうか? 言語のバージョンアップの度に、規約改定や更新をしていかないといけなくなるので、しんどさが想定できますね。 ここでひとつ考えられるのは、言語もこうして成長しているという事で、たまに間違った成長をすることもありますが、日本語も新たなコギャル用語が生まれては消えを繰り返しているのとなんら変わらないという認識で、勉強していくスタンスをもっているのがいいのではないかと考えてしまいました。 チョベリグですね。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ