【问题标题】:Update values of all public variables of class using get_object_vars()使用 get_object_vars() 更新类的所有公共变量的值
【发布时间】:2014-09-19 03:58:45
【问题描述】:

我的班级有 100 名公共成员。如何以自动方式更新它们,即不指定它们的名称。我已经尝试过了,我得到了变量,但所做的更改并没有反映在实际对象上。请指教。

    class foo {
    public $b = 1;
    public $c = 2;


    function __construct()
    {
        $x = get_object_vars($this);
        foreach ($x as $obj) {
                 $obj = 9;
        }
    }
}

$test = new foo;

echo $test->c;

它将“c”的值打印为 2 而不是 9

【问题讨论】:

  • 为什么你的班级需要 100 名成员?为什么你需要一次更新所有这些?也许它应该是一个数组?
  • 其实这100个变量已经是数组了。为简单起见,我在问题中更改了它们。我需要动态替换其中的一些数据。
  • 然后循环遍历数组,更新元素。
  • 是的。但我不想提及这 100 个名字...
  • 什么100个名字?它们是包含 100 个元素的数组,还是 100 个不同的变量?

标签: php class object data-members


【解决方案1】:
function __construct()
{
    $x = get_object_vars($this);
    foreach ($x as $key => $value) {
        $this->$key = 9;
    }
}

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2013-05-06
    相关资源
    最近更新 更多