【问题标题】:Convert an array to a specific object [duplicate]将数组转换为特定对象[重复]
【发布时间】:2018-01-10 21:31:57
【问题描述】:

如果我有一个数组:

[my_name: 'Xavi', your_name: 'Luis']

然后我有一个带有属性的对象名称:myNameyourName

我怎样才能最好地将数组转换为指定的对象? 有什么开箱即用的东西,某种帮助类吗?

【问题讨论】:

标签: php arrays object


【解决方案1】:

它不完全是重复的,答案也不是@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 之类的东西或其他东西,您将放弃对代码的大量控制。神奇地做事通常是个坏主意——更难的调试、更难的维护、更差的代码委派能力……
猜你喜欢
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 2017-06-20
  • 2021-11-04
  • 2019-07-14
相关资源
最近更新 更多