我正在尝试使用 Symfony Yaml dump
函数输出一些嵌套的 php 数组数据。
use \Symfony\Component\Yaml\Yaml;
echo Yaml::dump([
'arr'=>[],
'foo'=>'bar',
]);
但是,转储的 YAML 包含一个空对象:
arr: { }
foo: bar
虽然我想要一个空列表:
arr: []
foo: bar
我尝试使用 Yaml::DUMP_OBJECT_AS_MAP
标志,使用 ArrayObject
而不是数组文字,并使用 EmptyIterator
,全部失败有用。
我发现了两个与此相关的已关闭错误:https://github.com/symfony/symfony/issues/9870和 https://github.com/symfony/symfony/issues/15781 ,但那里的解决方案似乎不起作用,或者对我来说有点太老套和脆弱了(YAML 输出上的 str_replace,brrrr)
到目前为止,我有一个简单的测试用例:https://github.com/ComaVN/php-yaml-empty-array
关于如何解决这个问题有什么建议吗?
最佳答案
从 Symfony 3.3(2017 年 5 月发布)开始,您可以使用新的 Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE
选项:
Yaml::dump($object, 2, 4, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
此功能是在 PR 21471 中添加的.
关于php - 如何使用 Symfony Yaml 转储空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507111/