如何从类中循环遍历类中的所有公共变量?
如何获取公共变量?
private function translate_null_values_to_strings(){
foreach($this->public_vars as $key => $value){
if(is_null($this->$key)) $this->$key = '';
}
}
答案 0 :(得分:3)
使用Reflection。我已经修改了PHP手册中的一个例子来获得你想要的东西:
class Test
{
public $public1 = 'public 1';
public $public2 = '';
public $public3 = 'public 3';
private $private1 = 'private 1';
public function __construct()
{
$reflect = new ReflectionObject($this);
foreach ($reflect->getProperties(ReflectionProperty::IS_PUBLIC) as $prop)
{
$propName = $prop->getName();
echo $propName." --> ". $this->$propName . "\n";
}
}
}
$ob = new Test();
<强>输出:强>
public1 --> public 1
public2 -->
public3 --> public 3