読者です 読者をやめる 読者になる 読者になる

PHPオブジェクトのフィールドに名前文字列でアクセス

PHP

Pythonでいう、

o = some_oblect()
n = 'new_field'
setattr(o, n, 'new value')

で、JavaScriptでいう、

o = new Object();
n = 'new_field';
o[n] = 'new value';

PHPでやりたい。

<?php
$o = new stdClass();
$n = 'new_field';
$o->$n = 'new value';
?>

が正解。

これを思いつかず、APIを探して見つからないな〜と思いつつ、これまでずっとevalで書いてた。お恥ずかしいかぎりで。

<?php
$n = 'var_name';
$$n = 'var value'; // $var_name='var value';
?>

だっちゅーの、俺。