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);