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); }