PHPの配列を省略して定義できるcompact()が便利な件

こんにちは!ぐちです。

PHPの連想配列

PHPでは連想配列を多用すると思うのですが今まで僕は下記のような書き方をしていました。

$obj = array(
        'name' => $name,
        'age' => $age,
        'phone' => $phone
    );

おそらく一般的な書き方だと思うのですが属性が多いときにコピペしたり冗長的な作業になるんですよね。これまでも幾度となく「あぁーめんどくせーな!もう!」ってなってました。笑

compact()

上記のようなキーとバリューに設定する変数名が同じ場合に使える超便利な関数があります。それが「compact()」です。

前述の連想配列と同じものをcompact()で定義するには下記のように書きます。

$obj = compact('name', 'age', 'phone');

どうですか?!このシンプルさ。コードの可読性も高まりますしコーディング量も減るのでいいことづくしですね!

ただ、compact()はキー名とバリューの変数名が同じでないといけないのでそのルールから外れる場合には下記のよう+演算子を使い配列を結合する必要があります。

$obj = compact('name', 'age', 'phone') + array('bmi' => _getBMI());

こういった「ちょっとしたこと」を便利にしてくれる関数をどんどん活用して生産性をあげていきたいですね!

では今回はこの辺で。