从匿名类变量返回数据

时间:2012-01-21 10:59:00

标签: php

我正在寻找一种方法来实现以下结果。我很容易使用这个类,它是实现它的方法。

final class Trade {

    private $users_id;
    private $adj_id;

    public function display() {
        var_dump($this);    
    }

    public function setData($form_results) {
        foreach ($form_results as $var => $value) {
            $this->{$var} = $value;
        }
    }

    public function getData() {
        return get_object_vars($this);
    }
}

问题是在类方法中调用get_object_vars()。正如预期的那样,它会忽略我设置的私有变量,并返回由于其范围而包含公共和私有的所有类变量的数组。

我试图让方法只返回公共匿名变量。有没有办法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

尝试使用

   foreach($this as $key => $value) {
       print "$key => $value\n";
   }

详见http://www.php.net/manual/en/language.oop5.iterations.php

答案 1 :(得分:0)

为什么不将所有数据保存到某个私有变量并返回?

如果您的对象必须包含数据作为其属性,则可以使用__get__set来读取和设置该数组中的项目,而在外部它看起来就像是属性。< / p>