Php OpenCart配置类是如何工作的?
我正在浏览OpenCart的代码。我找到一个名为的库类文件。config.class.php 代码如下:Php OpenCart配置类是如何工作的?,php,opencart,Php,Opencart,我正在浏览OpenCart的代码。我找到一个名为的库类文件。config.class.php 代码如下: public function load($filename) { $file = SYS_CONFIG_DIR . $filename . '.php'; if(file_exists($file)) { $cfg = array(); require($file); $this->data = array_m
public function load($filename)
{
$file = SYS_CONFIG_DIR . $filename . '.php';
if(file_exists($file))
{
$cfg = array();
require($file);
$this->data = array_merge($this->data, $cfg);
}
else
{
trigger_error('Error: Could not load config ' . $filename . '!');
exit();
}
}
我可以看到它首先尝试检查文件是否存在。然后,创建一个var$cfg作为数组。然后它需要这个文件。然后它合并了它的。这就是我不明白的地方
$this->data = array_merge($this->data, $cfg);
所以我要加载到这个类中的配置文件。我将如何构造它,使其能够与此系统配置类合并?请查看它的工作原理:
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加
这基本上意味着,在稍后加载的配置中,可以有一个空的$cfg数组,然后它将不起任何作用。如果在配置数组中设置了某些变量:
$cfg = array();
$cfg["var"] = "value";
它将创建一个新的设置(如果以前未设置),或者覆盖该设置
当然,如果在加载另一个配置后,它将再次覆盖两个配置中设置的任何值。最后一个胜出。看一看,它确切地说,它是如何工作的:
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加
这基本上意味着,在稍后加载的配置中,可以有一个空的$cfg数组,然后它将不起任何作用。如果在配置数组中设置了某些变量:
$cfg = array();
$cfg["var"] = "value";
它将创建一个新的设置(如果以前未设置),或者覆盖该设置
当然,如果在加载另一个配置后,它将再次覆盖两个配置中设置的任何值。最后一个赢。您基本上需要创建一个php文件,并使用键值对定义$cfg数组。范例
<?php
$cfg['some_var'] = 'value';
$cfg['som_other_var'] = 'some other value';
您基本上需要创建一个php文件,并使用键值对定义$cfg数组。范例
<?php
$cfg['some_var'] = 'value';
$cfg['som_other_var'] = 'some other value';