定義なしで使える標準クラス – stdClass

オブジェクト指向プログラミングに慣れてくると、関連のある情報をクラスにまとめたくなってきます。そんな時、わざわざクラスを定義しなくても使える便利なクラスがあります。

stdClassを利用しよう

次のようなプログラムを作成してみましょう。

<?php
$book = new stdClass();
$book->name = "PHP入門";
$book->price = 1500;

ここでは、書籍の名前と金額を関連付けて管理するために、$bookという変数を準備しています。クラスは宣言せず、stdClassというクラスのインスタンスとして定義しています。

こうすれば、プロパティを自由に増やして使うことができます。メソッドなどはないため、基本的にはこのようなプロパティを利用したいときに利用します。

stdClassにまとめるメリット

データをこのようにオブジェクトにまとめるメリットとしては、次のようなものが考えられます。

  • ファンクションやメソッドなどにまとめてパラメーターとして指定できる
  • クラスの配列にしたときにまとめて管理できる
  • 後で独自のクラスを定義して置き換えることができる

ただし、前者2つのメリットは、連想配列を使うことでも解決できます。

連想配列との違い

このような関連性のあるデータを表現するときは連想配列を既に紹介しました。

この両者は実際にはそれほど違いはありません。オブジェクト指向にこだわってデータを表現するか、配列を利用するか程度の違いしかないため、好みで使い分けても良いでしょう。

ともすたチャンネルに
チャンネル登録する