PHPのオブジェクトへのキャスト
PHP初心者の山城です!(object)とかあったので試してみましたよ!
<?php $array = array('hoge' => 'hoge val', 'bar' => 'bar val'); $obj = (object)$array; var_dump($obj);
結果
object(stdClass)[1] public 'hoge' => string 'hoge val' (length=8) public 'bar' => string 'bar val' (length=7)
(object)でオブジェクト型のオブジェクトが出来上がると…
これどこで使うんだろう?
せめて Hoge クラスがあったときに (Hoge)できればいいんだけど。
stdClass というのも教えてもらった
<?php $obj = new stdClass; $obj->hoge = 'hoge val'; $obj->bar = 'bar val'; var_dump($obj);
と書いておくと、
object(stdClass)[1] public 'hoge' => string 'hoge val' (length=8) public 'bar' => string 'bar val' (length=7)
となる。
うーん。連想配列地獄よりマシ…でもないか…
ついでにこんなのもやってみた。
そうか全てのクラスは stdClass 継承していて、未定義の変数になんでも突っ込めるのか…
LLだからそりゃそうな気もするが…
型システムってなんなんだろうね
<?php class Hoge { var $hoge; } $obj = new Hoge; $obj->hoge = 'hoge val'; var_dump($obj); $obj->bar = 'bar val'; var_dump($obj); $obj2 = new Hoge; var_dump($obj2);