【PHP】オブジェクト形式のデータを作成する方法
2019/12/23
LaravelのBladeテンプレートのサンプルを作っている中で、PHPでオブジェクト形式のデータの作成方法を知らないということに気がついてしまいました。
恥ずかしながら連想配列とオブジェクトを同じものと勘違いしておりました。(えー)
ということで、ちゃんと理解しろという自戒の念も込めまして、オブジェクト形式データの作成方法をポストしておきます。
PHPでオブジェクト形式データを作成する
配列を作成してから、オブジェクト形式へ変換する
1 2 3 4 5 6 7 8 9 10 |
$obj = (object) [ 'name' => 'Obi-Wan Kenobi', 'gender' => 'Male', 'age' => '60', 'lank' => 'JEDI Master', 'weapon' => 'Lightsaber' ]; echo 'name: ' . $obj->name . '<br>'; echo 'weapon: ' . $obj->weapon; |
上記内容ですと、$person->name でアクセス可能。
$obj->name で「Obi-Wan Kenobi」、$obj->weapon で「Lightsaber」となります。
結果
各々作成したオブジェクトを、配列化する
Laravelの学習内でも触れましたが、以下の作成方法でループ用のデータを作成できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$obj = [ (object) ['id'=> 1, 'name'=> 'Alex'], (object) ['id'=> 2, 'name'=> 'Billy'], (object) ['id'=> 3, 'name'=> 'Charlie'], (object) ['id'=> 4, 'name'=> 'Daniel'], (object) ['id'=> 5, 'name'=> 'Edward'], (object) ['id'=> 6, 'name'=> 'Fredrick'], ]; foreach ($obj AS $user) { echo $user->id . '. '; // ID echo $user->name; // 名前 echo '<br>'; } |
結果
どこかでも書いたし思いもしましたが、結局、連想配列のほうが書くのに慣れている気がします。。。