0
我正在为类创建配置属性,但使它很容易可用我正在创建一个函数$key
和$value
参数来设置配置选项。PHP:创建配置功能来设置或全局检索值
我设法得到部分解决它,但是这个代码是不加载系统中的所有配置的关键定义,但它只是加载的关键,如果我们定义的键后调用。
所以我怎么能做出这样的事情,所以我在哪里调用该函数将加载系统中的所有设置键不管。
调用函数来设置配置关键
// set very first key
ss_config('use_ob', true);
// debug
do_print(ss_config()); // this is just a debugging function with pre and print_r
//output (so here I want to load all set keys regardless either I am calling before or after set in the system)
Array
(
[use_ob] => 1
)
设置另一个关键
// after above output I set this
ss_config('hello', 'world');
// debug
do_print(ss_config());
// output
Array
(
[use_ob] => 1
[hello] => world
)
配置功能
/**
* Global config settings
* @param string $key config key
* @param mixed $value config value for the key
*
* @return array
*/
function ss_config($key = NULL, $value = NULL)
{
//$ss_config = qam_ss();
if (isset($key) && isset($value)) {
qam_ss()->ss_config[ $key ] = $value;
} elseif (isset($key) && !isset($value)) {
qam_ss()->ss_config[ $key ];
}
return qam_ss()->ss_config;
}
感谢您的参考。那么你是否认为为'Config'创建单独的类而不仅仅是将属性添加到主类是个好主意?此外,我不是每次都要实例化类,我想让开发人员使用一个函数。所以如果我在函数中设置实例并且返回'$ config',我会在全局获取所有密钥吗? –
@CodeLover查看编辑答案;分类功能通常更好。如果你想要一个全局配置存储,那最好保存为一个额外的类。如果您需要存储一些对您的课堂重要的值,请将其保存在上面的示例中。 如果你需要一个更精致的例子,来看看我的[Github上项目(https://github.com/Radiergummi/libconfig)。 –
好吧,工作正常,但如果我想要所有注册的配置项目呢?其实,我看到的是,如果我调用没有键的配置,并且即使在定义键和值应该可用之前,我正在调用。如果你在我的代码中看到我设置'你好,world'项目是可用的,如果我把它叫做集之后,而不是在第一个'do_print' –