配列操作class Arr
Arrクラスは安全な配列操作を行うための関数です。
isset
を利用した配列要素の存在チェック
以下のコードを見てみましょう。$newMemberName
の初期化式が非常に長くなっています。
<?php
// WebAPIからグループ情報を取得し、あるグループに最近入ったユーザーの名前を表示する
$groupId = Req::post('groupId');
$reqUrl = 'http://someapi-provider.com/group_info/' . $groupId;
$rawResponse = file_load_contents($reqUrl);
$res = json_decode($rawResponse);
// とてもながい
$newMemberName = isset($res['newestMember'][0]['name']) ? $res['newestMember'][0]['name'] : null;
if ($newestMember !== null) {
// メンバー名を表示
printf('最近ジョインしたメンバー: %s', $newMemberName);
}
$newMemberName
の初期化式はArr::get
メソッドを利用すれば短く書くことが出来ます
$newMemberName = Arr::get($res, 'newestMember.0.name');
この例ではWebAPIの結果を利用しましたが、このようなパターンは$_POST
変数などから値を取り出す場合にも有効です。
// 長い
$userId = isset($_POST['user_id']) ? $_POST['user_id'] : false;
// 短い
$userId = Arr::get($_POST, 'user_id', false);
// この場合、CodeLapseでは`Req::post`メソッドの方が最適です。
$userId = Req::post('user_id', false);