循环遍历所有公共变量并将NULL值转换为空字符串

时间:2016-03-29 08:15:24

标签: php

如何从类中循环遍历类中的所有公共变量?

如何获取公共变量?

private function translate_null_values_to_strings(){
    foreach($this->public_vars as $key => $value){
        if(is_null($this->$key)) $this->$key = '';
    }
}

1 个答案:

答案 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