如何从Array填充PHP中的对象

got*_*ch4 9 php

假设我有:

class A{
 public $one;
 public $two;
}
Run Code Online (Sandbox Code Playgroud)

和一个值为的数组:

array('one' => 234, 'two' => 2)
Run Code Online (Sandbox Code Playgroud)

有没有办法让A的实例自动填充数组中的正确值?

hak*_*kre 16

你需要为自己写一个函数.PHP有get_object_vars文档,但没有设置对应:

function set_object_vars($object, array $vars) {
    $has = get_object_vars($object);
    foreach ($has as $name => $oldValue) {
        $object->$name = isset($vars[$name]) ? $vars[$name] : NULL;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

$a = new A();
$vars = array('one' => 234, 'two' => 2);
set_object_vars($a, $vars);
Run Code Online (Sandbox Code Playgroud)