遍历对象的属性并修改原始对象

问题描述 投票:5回答:1

我有这个简单的问题。在这个简单的脚本中:

<?php 

class MyClass {
    public var1 = '1';
    public var2 = '';
    public var3 = '3';
}

$class = new MyClass;

foreach ($class as $key => $value) {
    echo $key . ' => ' . $value . '<br />';
}

?>

结果将是:

var1 => 1

var2 =>

var3 => 3

如果我想迭代所有这些属性,以便我可以找出哪一个是空的,我如何为对象中的空属性赋值?

foreach ($class as $key => $value) {
    if (empty($value)) {
        $value = 'something';
    }
}

...没有用,因为我猜PHP认为$value是一个实际的变量,而不是一个参考。

php oop
1个回答
17
投票

试试这个:

foreach ($class as $key => $value) {
    if (empty($value)) {
        $value = 'something';
        $class->$key = $value;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.