简体   繁体   English

填充对象的属性

[英]Populating an object's properties

Consider following code: 考虑以下代码:

$ob=new MyObject();

$ob->name=$_GET['name'];
$ob->email=$_GET['email'];
...
$ob->foo=$_GET['foo'];

Is there any cleaner way (language mechanism) to populating an object's property with an associative array. 是否有任何更简洁的方法(语言机制)来用关联数组填充对象的属性。 ( without using foreach or similar constructs )? 不使用foreach或类似结构 )?

答案所述,您可以执行以下操作:

$ob = (Object) $a;

Only foreach? 只有foreach? You can other loop: while, for. 您可以进行其他循环:while,for。 What about goto? 那goto呢?

Also you can use some functions without obvious loop. 您也可以使用某些功能而不会产生明显的循环。

$object = new MyObject();
$array = array('foo' => 1, 'baz' => 2);

array_walk($array, function ($value, $field)use($object){
    $object->$field = $value;
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM