Output Place

得た知識をアウトプットする場

phpの分割代入について書き留めておく

phpの分割代入で、
使えそうだなーって思ったのを自分用に書き留めておく。

配列の中身を一つずつ変数に詰め直す作業。
分割代入を使わないとこんな感じでめんどくさい。

$fruits = ['apple', 'orange', 'banana'];
$apple = $fruits[0];
$orange = $fruits[1];
$banana = $fruits[2];

分割代入を使うと
こんな感じ

$fruits = ['apple', 'orange', 'banana'];
[$apple, $orange, $banana] = $fruits;
var_dump($orange); //orange

$fruits配列の左から順に代入していってくれる。




お次は連想配列のパターン


分割代入を使わないで変数に詰め込み直す作業をすると↓

$fruits = ['apple' => 'りんご', 'orange' => 'オレンジ', 'banana' => 'バナナ'];
$apple = $fruits['apple'];
$orange = $fruits['orange'];
$banana = $fruits['banana'];

分割代入を使うと

$fruits = ['apple' => 'りんご', 'orange' => 'オレンジ', 'banana' => 'バナナ'];
['apple' => $apple, 'orange' => $orange, 'banana' => $banana] = $fruits;
var_dump($banana); //バナナ

スッキリかける。横に長くなってしまうけれども。


実際に使えそうだと思ったケース。
各チームのポイントとランクだけ取り出したい。って場合↓

$teams = array
            (
                'Liverpool' => array
                    (
                        'name' => 'Liverpool',
                        'points' => 52,
                        'rank' => 1
                    ),
                'Everton' => array
                    (
                        'name' => 'Liverpool',
                        'points' => 25,
                        'rank' => 10
                    )
            );
        
foreach ($teams as $team) {
    ['points' => $points, 'rank' => $rank] = $team;
    var_dump($points);
}