Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OpenCart配置类是如何工作的?_Php_Opencart - Fatal编程技术网

Php OpenCart配置类是如何工作的?

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

我正在浏览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_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';