連想配列への代入は一括でやった方がいいと思う

2020-03-26追記

もっと単純に、一つの操作を複数に分けるな、って話でよかったね。


<?php

$assoc1['key1'] = 'val1';
$assoc1['key2'] = 'val2';
$assoc1['key3'] = 'val3';

$assoc2 = [
    'key1' => 'val1',
    'key2' => 'val2',
    'key3' => 'val3',
];

上記のような場合に、$assoc1の方法より$assoc2の方法がいいと思う。まあ昔からずっと思っていたのだが最近$assoc1の方法で書かれたコードを読んで書き直してとすることがあって再度思って、でもそれはなぜかと聞かれても即答できなそうだったのでちょっと考えた。

まあ単純な話で、

  1. $assoc1の場合は、変数が3回出現しており、その分変数名に間違えがないか(1つ$assoclがあったらどうする)、追加で確認しなければならない。
  2. $assoc1の場合は、代入演算子も3回出現しており、その分よく見ると別の演算子(+=とか)だったりしないか、追加で確認しなければならない。

ということで、あらゆる繰り返しと同様、同じことなのに別々に書くと別々に確認しなければならないので、まとめた方がいいというそれだけの話。もちろん確認だけではなく、変更のときもその分変更が増えるよね。

これで今後$assoc1の書き方をしている人がいたら、ちゃんと根拠を持って注意できる。

ちなみにあまりに当たり前で普通のことだからか、リーダブルコードにもCode Completeにもこの辺に関する説明はなかったと思う。