Objectに動的にプロパティを追加する
object 生成後に、宣言とか関数とか使わずにプロパティを追加できるらしい。
by PHP 5.2.6 (Mac OSX)
<?php class Test { public $a = 'default'; } $test = new Test(); $test->foo = 'bar'; // add property print_r(get_class_vars('Test')); print_r(get_object_vars($test));
// 実行結果 Array ( [a] => default ) Array ( [a] => default [foo] => bar )
うかつに使うと後から追うのが難しいなーなんて思ってたら、こんなこともできた
<?php class Test { public $a = 'default'; } $test = new Test(); $hoge = 'hage'; $test->$hoge = 'moga'; // add property print_r(get_class_vars('Test')); print_r(get_object_vars($test));
// 実行結果 Array ( [a] => default ) Array ( [a] => default [hage] => moga )
変数内の文字列の名前を持ったプロパティが追加されている。
ORマッパーを作るなどする時は便利そうだ、が・・・
こんなにさりげないと、あっという間にミートソースをぶっかけたくなりそうで困る。
こんなネタも
PHP 5.4 RC1リリース、新機能の「行番号」や「LIST」「RUN」に注目 : bogusnews
現実はネタよりも奇なり、になる・・・かも。