我想使用YAML配置文件,为此,我使用作曲器下载了symfony/yaml
软件包。
我创建我的测试YAML文件内容:
testing:
test: 2
要解析它,我使用以下代码:
$yaml = Yaml::parse(file_get_contents('test.yml'));
var_dump($yaml->testng);
但是,出现此错误“试图获取非对象的属性” testng”,因为解析返回数组,而我想获取一个对象。
我尝试添加(object)
,但它仅适用于第一个属性。
有什么解决办法吗?
答案 0 :(得分:3)
根据documentation,您只需传递Yaml::PARSE_OBJECT_FOR_MAP
作为Yaml::parse()
的第二个参数:
$yaml = Yaml::parse(file_get_contents('test.yml'), Yaml::PARSE_OBJECT_FOR_MAP);
答案 1 :(得分:0)
您可以使用此功能
public function toObject($array) {
$obj = new stdClass();
foreach ($array as $key => $val) {
$obj->$key = is_array($val) ? $this->toObject($val) : $val;
}
return $obj;
}