我应该使用数组或对象来引用系统设置吗?

时间:2015-04-27 01:59:34

标签: php

我正在构建一个拥有30-40系统设置的网站。这些可在文本文件中编辑。我想确保我使用最合理且资源最少的方法设置网站来提取这些设置。

我一直在考虑使用数组:

$system['language'] = 'en';
$system['version'] = '0.1';

在整个网站中引用它们,例如:echo $system['version'];

或者,我可以将它们设置为对象:

class SiteConfig {
  public $language = 'en';
  public $version = '0.1';
}

$system = new SiteConfig;

在整个网站中引用它们,例如:echo $system->version;

最好使用哪个,或者有人有更好的建议吗?

1 个答案:

答案 0 :(得分:2)

某些框架(例如Laravel)采用的方法是创建一个设置文件,然后使用require引入。

您的各种设置都在该文件中的单个数组中定义,并返回:

的settings.php

<?php

return array(
    'language' => 'en',
    'version'  => '0.1',
    'timezone' => 'America/Sao_Paulo',
);

然后你就可以使用它:

$system = require 'settings.php';
echo $system['version'];

有关此返回的详情,请参阅php.net docs for include上的示例#5。