2007-11-16
■[PHP]オブジェクトをarrayにキャストする
し、知らんかった。。。(2回目)
あ、これ逆((array)$obj)もできますよ。当たり前と言えば当たり前ですが。
配列をobjectにキャストする - Do You PHP はてな
ということで、前のエントリのサンプルを修正して実行。。。
$ cat cast.php <?php $arr = array('foo' => 1, 'bar' => 'hogehoge', 'baz'); $obj = (object)$arr; var_dump($arr); var_dump((object)$arr); var_dump((array)(object)$arr); class ClassA { private $priv; protected $prot; public $pub; public function __construct($priv, $prot, $pub) { $this->priv = $priv; $this->prot = $prot; $this->pub = $pub; } } class ClassB extends ClassA { private $priv; protected $prot; public $pub; public function __construct($priv, $prot, $pub) { parent::__construct($priv, $prot, $pub); $this->priv = $priv + 1; $this->prot = $prot . 'baz'; $this->pub = !$pub; } } $obj = new ClassA(1, 'foo', false); var_dump((array)$obj); $obj = new ClassB(2, 'bar', true); var_dump((array)$obj); $ php cast.php array(3) { ["foo"]=> int(1) ["bar"]=> string(8) "hogehoge" [0]=> string(3) "baz" } object(stdClass)#2 (3) { ["foo"]=> int(1) ["bar"]=> string(8) "hogehoge" [0]=> string(3) "baz" } array(3) { ["foo"]=> int(1) ["bar"]=> string(8) "hogehoge" [0]=> string(3) "baz" } array(3) { ["ClassApriv"]=> int(1) ["*prot"]=> string(3) "foo" ["pub"]=> bool(false) } array(4) { ["ClassBpriv"]=> int(3) ["*prot"]=> string(6) "barbaz" ["pub"]=> bool(false) ["ClassApriv"]=> int(2) } $
これって当たり前ですか?当たり前ですか。そうですか。
追記(2007/11/16 10:50)
id:candystreamさんのブクマコメントを参考にサンプルを修正しました。ありがとうございました:-)
トラックバック - http://d.hatena.ne.jp/shimooka/20071116/1195176801
リンク元
- 1821 http://suin.asia/2009/03/09/cast-object-to-array.html
- 989 https://www.google.co.jp/
- 201 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDYQFjAB&url=http://d.hatena.ne.jp/shimooka/20071116/1195176801&ei=_Mw8T6mePILmmAW0ttXGBw&usg=AFQjCNEk9_s44Ul_wx1xJ8gNh2fR6xerkQ&sig2=RdorcXwYlybIWbDKG5nE7Q
- 162 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331127857046&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/shimooka/20071116/1195176801&ei=PGZXT4H6HMPtmAXjg_SqDw&usg=AFQjCNEk9_s44Ul_wx1xJ8gNh2fR6xerkQ&sig2=KwTZO0q3N7OVYNIzRKQyZ
- 124 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDsQFjAC&url=http://d.hatena.ne.jp/shimooka/20071116/1195176801&ei=ZOViT7jIMMKqrAeDuey8Bw&usg=AFQjCNEk9_s44Ul_wx1xJ8gNh2fR6xerkQ
- 106 http://www.google.co.jp/search?q=php+object+array&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:ja:unofficial&client=firefox-a
- 103 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=5zd&q=php+キャスト+オブジェクト&btnG=検索&lr=lang_ja
- 98 http://www.google.co.jp/search?q=php+object+array&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 92 http://www.google.co.jp/url?sa=t&rct=j&q=php object array&source=web&cd=1&ved=0CCkQFjAA&url=http://d.hatena.ne.jp/shimooka/20071116/1195176801&ei=UMKnTuDaG9HJmAW-1fXYDw&usg=AFQjCNEk9_s44Ul_wx1xJ8gNh2fR6xerkQ
- 85 http://www.google.co.jp/search?q=php+オブジェクト+配列+キャスト&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox