クラス内またはクラス外から、クラスのすべてのフィールドに対して foreach を実行するにはどうすればよいでしょうか。たとえば、次のクラスがあるとします。
class Foo
{
public $a;
public $b;
private $c;
private $d;
public function __construct($params)
{
foreach($params as $k=>$v){
$this->$k = $v;
}
}
public function showAll()
{
$output = array();
foreach (this as $k=>$v) { // How to refer to all the class properties?
$output[$k] = $v;
}
return $output;
}
}
foreach()
メソッド内の は、 、、、およびプロパティをどのようにshowAll()
参照しますか?$a
$b
$c
$d
さらに言えば、クラスの外部からすべてのパブリック プロパティを取得できますか?
$params = array();
$foo = new Foo($params);
foreach ($foo->allProperties as $f=>$v) { // how to do this?
echo "{$f}: {$v}\n";
}