gpt4 book ai didi

php - 将数组输出转换为对象的最佳策略?

转载 作者:行者123 更新时间:2023-12-04 06:58:09 25 4
gpt4 key购买 nike

我正在从命令行程序获取数组输出并将其解析为 PHP 对象。考虑这个非常简单的方法的例子:

$output = explode("\n", shell_exec(myProg));
$obj = new MyObject();

$offset_field1 = 0;
$offset_field2 = 1;

$obj->Field1 = $output[$offset_field1];
$obj->Field2 = $output[$offset_field2];

这有点麻烦,尤其是当字段数增加时。是否有更好的设计模式或方法以不那么严厉的方式完成同样的壮举?

最佳答案

为什么不把赋值代码放在对象中呢?

class MyObject
{
public function __construct(array $data)
{
$this->Field1 = $data['keyname1'];
$this->Field2 = $data['keyname2'];
...
}
}

或使用 get 魔术方法。
class MyObject
{
protected $data;

public function __construct(array $data)
{
$this->data = $data;
}

public function __get($key)
{
$map = array('Field1' => 1, 'Feild2' => 2, ...);
if (isset($map[$key])) {
return $this->data[$map[$key]];
}
}
}

关于php - 将数组输出转换为对象的最佳策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com