Zend Config Ini - 无法解析数组

oro*_*edd 4 ini zend-framework

我无法在ini文件中获取数组的值.

这是ini文件:

module.name = Core
module.version = 1
module.package = 'Core Modules'

module.dependency[] = Dep1
module.dependency[] = Dep2
module.dependency[] = Dep3
Run Code Online (Sandbox Code Playgroud)

这是我用来解析它的代码:

$ini = new Zend_Config_Ini('/path/to/module.ini');
Run Code Online (Sandbox Code Playgroud)

以下工作正常:

echo $ini->module->name;
Run Code Online (Sandbox Code Playgroud)

但是,这会导致错误('对非对象调用成员函数toArray()'):

$ini->module->dependency->toArray();
Run Code Online (Sandbox Code Playgroud)

此外,这将返回null:

var_dump($ini->module->dependency);
Run Code Online (Sandbox Code Playgroud)

如果我将ini文件更改为:

module.name = Core
module.version = 1
module.package = 'Core Modules'

dependency[] = Dep1
dependency[] = Dep2
dependency[] = Dep3
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法访问数组:

$ini->dependency->toArray();
Run Code Online (Sandbox Code Playgroud)

我想要'模块'.但是,前缀是因为其他配置数据将在文件中.

任何帮助是极大的赞赏!

小智 5

您应该在配置顶部指定一个部分.像这样的东西:

[production]
module.dependency[] = Dep1
module.dependency[] = Dep2
module.dependency[] = Dep3
Run Code Online (Sandbox Code Playgroud)

现在这样做会好的:

$ini = new Zend_Config_Ini('/path/to/module.ini', 'production');
$ini->module->dependency->toArray();
Run Code Online (Sandbox Code Playgroud)