【发布时间】:2018-01-10 21:31:57
【问题描述】:
如果我有一个数组:
[my_name: 'Xavi', your_name: 'Luis']
然后我有一个带有属性的对象名称:myName、yourName。
我怎样才能最好地将数组转换为指定的对象? 有什么开箱即用的东西,某种帮助类吗?
【问题讨论】:
如果我有一个数组:
[my_name: 'Xavi', your_name: 'Luis']
然后我有一个带有属性的对象名称:myName、yourName。
我怎样才能最好地将数组转换为指定的对象? 有什么开箱即用的东西,某种帮助类吗?
【问题讨论】:
它不完全是重复的,答案也不是@Alive_to_Die 写的——它将数组索引设置为完全命名的类属性,而问题是别的......
您必须手动将索引重新映射到类属性中。
class obj
{
public $myName;
public $yourName;
}
$array = [
'my_name' => 'Xavi',
'your_name' => 'Luis',
];
$obj = new obj;
$obj->myName = $array['my_name'];
$obj->yourName = $array['your_name'];
var_dump($obj);
输出:
object(obj)#1 (2) {
["myName"]=>
string(4) "Xavi"
["yourName"]=>
string(4) "Luis"
}
【讨论】:
str_replace 之类的东西或其他东西,您将放弃对代码的大量控制。神奇地做事通常是个坏主意——更难的调试、更难的维护、更差的代码委派能力……