サンプルデータ
stdClass Object
(
[soup] => 豚骨
[tare] => 醤油
[men] => 大盛り
)
基本的なやり方:stdClassを使う
今まではこんな感じで作成してデータを入力していました。$ramen = new stdClass;
$ramen->soup = '豚骨';
$ramen->tare = '醤油';
$ramen->men = '大盛り';
型キャストを使ったやり方
一方でキャストを使って作成する方法もあり、こっちの方がスマートに見えます。$ramen = (object) [
'soup' => '豚骨'
,'tare' => '醤油'
,'men' => '大盛り'
];
多段にしたい場合も、キャストして渡せば大丈夫です。
$ramen = (object) [
'soup' => '豚骨'
,'tare' => '醤油'
,'men' => '大盛り'
,'topping' => [
'chashu' => true
,'menma' => false
,'negi' => true
]
];
$ramen->topping->negi //true
使い分けが必要
汎用性の高いデータの場合は、きちんとクラスを定義してデータを受け渡すべきですが、実際にコーディングしているとそこまでではないデータというのも多くあります。使い捨てにするデータとか、1つの処理の中だけで使うデータとか、api越しに渡すだけのデータとか。そういうときにはごちゃごちゃと配列で渡すよりも、オブジェクト型で渡す方がスッキリします。一方で配列の方が標準関数が豊富に揃っており、あとでデータを加工する場合には配列の方が便利なことも多いです。要はケースバイケースですね。使い分け。とりあえず、標準クラスを使いたいときはこうすると良いよってことで。
参考
stdClassのオブジェクトを作る方法 – QiitaPHP標準クラスのstdClassについて – phpspot