オブジェクト指向プログラミングに慣れてくると、関連のある情報をクラスにまとめたくなってきます。そんな時、わざわざクラスを定義しなくても使える便利なクラスがあります。
stdClassを利用しよう
次のようなプログラムを作成してみましょう。
<?php
$book = new stdClass();
$book->name = "PHP入門";
$book->price = 1500;
ここでは、書籍の名前と金額を関連付けて管理するために、$bookという変数を準備しています。クラスは宣言せず、stdClassというクラスのインスタンスとして定義しています。
こうすれば、プロパティを自由に増やして使うことができます。メソッドなどはないため、基本的にはこのようなプロパティを利用したいときに利用します。
stdClassにまとめるメリット
データをこのようにオブジェクトにまとめるメリットとしては、次のようなものが考えられます。
- ファンクションやメソッドなどにまとめてパラメーターとして指定できる
- クラスの配列にしたときにまとめて管理できる
- 後で独自のクラスを定義して置き換えることができる
ただし、前者2つのメリットは、連想配列を使うことでも解決できます。
連想配列との違い
このような関連性のあるデータを表現するときは連想配列を既に紹介しました。
この両者は実際にはそれほど違いはありません。オブジェクト指向にこだわってデータを表現するか、配列を利用するか程度の違いしかないため、好みで使い分けても良いでしょう。