PHPでプログラムを書いていると、「関連するデータをまとめて扱いたいけど、連想配列だけだと少し扱いにくいな…」「もっと構造的にデータを管理したい!」と感じることはありませんか?そんな時、オブジェクト形式でデータを扱う方法を知っていると、コードが格段に分かりやすく、そして柔軟になります。
「でも、オブジェクトってなんだか難しそう…」「PHPで簡単にオブジェクトを作る方法ってあるの?」と思っている方もご安心ください。
この記事では、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>'; } |
結果
連想配列のほうが一見楽なようにも思えますが、モダンなPHPではオブジェクトが有効ですので、この際にしっかりと理解して覚えましょう。
関連するかもしれないポスト

【PHP】変数名に変数を使って動的に指定する「可変変数」の使い方
PHPで変数名に連番などの「変数」を使い、動的に変数名を指定できる「可変変数」の記述方法、使い方を説します。変数名に変数が使えるとはどういうことか、読めば納得するはずです。

【php】array_unique関数で重複した値を削除するまとめ
phpのarray_unique関数を使い、重複した値を削除する方法をまとめたので、備忘録としてポストします。