PHPには配列と標準クラスという似たような機能があって、どちらを使用するかはプログラムを作る人の好みだったりします。
ですが、配列を使用しているけど、どうしてもこの部分だけは標準クラスのオブジェクトに変換して使いたいという場面があるかも知れません。また逆に、関数を使用するためにオブジェクトでなくて、配列じゃないと駄目といったこともあるかも知れません。
そこで配列から標準クラスに変換する方法とその逆について解説したいと思います。
配列を標準クラスに変換する方法は?
PHPで配列を標準クラスのオブジェクトに変換するプログラム例です。
$array = array(
"key1" => "value1",
"key2" => "value2",
"key3" => "value3",
);
$object = (object) $array;
print_r($object);
プログラム実行結果:
stdClass Object
(
[key1] => value1
[key2] => value2
[key3] => value3
)
プログラム解説
この配列を標準クラスに変換するプログラムについて解説します。
$object = (object) $array;
配列を標準クラスに変換するのは、「Object」でキャストするだけで簡単にできます。上記の部分で変換しております。
print_r($object);
この部分で標準クラスに変換した変数「$object」の中身を表示していますが、実行結果から問題なく標準クラスに変換されていることがわかります。
標準クラスを配列に変換する方法は?
今度は逆にPHPで標準クラスを配列に変換するプログラム例です。
$object = new stdClass();
$object->key1 = "value1";
$object->key2 = "value2";
$object->key3 = "value3";
$array = (array) $object;
print_r($array);
プログラム実行結果:
Array
(
[key1] => value1
[key2] => value2
[key3] => value3
)
プログラム解説
この標準クラスを配列に変換するプログラムについて解説します。
$array = (array) $object;
この部分で標準クラスのオブジェクトを配列に変換して変数「$array」に格納しております。この場合も「array」でキャストするだけで簡単に変換することができます。
まとめ
PHPで配列を標準クラスに変換する方法、また逆に標準クラスを配列に変換する方法について解説してきましたが、いかがでしたでしょうか。
単にキャストするだけでできるなんて意外に簡単で、驚いた人もいるかもしれませんね。配列と標準クラスはどちらがいいのか甲乙つけがたいですが、筆者はプログラムを書くときには標準クラスのほうがどちらかというと書きやすさの点で好きです。
コメント