我正在使用此Config类让我更容易读出我的首选项。
<?php
class Config {
public static function get($path = null) {
if ($path){
$config = $GLOBALS['config'];
$path = explode('/', $path);
foreach($path as $bit) {
if(isset($config[$bit])) {
$config = $config[$bit];
}
}
return $config;
}
return false;
}
}
现在,我应该可以在我的脚本中使用这一行来获取配置:
echo Config::get('settings/main_color');
我的首选项位于JSON文件中,但存储在$ GLOBALS ['config']中的数组如下所示:
Array (
[mysql] => Array (
[host] => localhost:3307
[username] => root
[password] => usbw
[db] => webshop )
[remember] => Array (
[cookie_name] => hash
[cookie_expiry] => 604800 )
[sessions] => Array (
[session_name] => user
[token_name] => token )
[settings] => Array (
[main_color] => #069CDE
[front_page_cat] => Best Verkocht,Populaire Producten
[title_block_first] => GRATIS verzending van €50,-
[title_block_second] => Vandaag besteld morgen in huis! )
[statics] => Array (
[header] => enabled
[title_block] => enabled
[menu] => enabled
[slideshow] => enabled
[left_box] => enabled
[email_block] => enabled
[footer] => enabled
[keurmerken] => enabled
[copyright] => enabled )
)
现在,当我尝试在我的脚本中找到一个pref时。它说我的字符串是一个数组。所以我使用print_r来显示数组。然后是以下结果:
的print_r(配置::得到( '设置/ main_color'));
数组([标题] =&gt;已启用[title_block] =&gt;已启用[menu] =&gt;已启用[幻灯片显示] =&gt;已启用[left_box] =&gt;已启用[email_block] =&gt;已启用[页脚] =&gt;启用[keurmerken] =&gt;启用[版权] =&gt;启用)
我的脚本在哪里犯了错误?
答案 0 :(得分:0)
如果真的,你的数组是结构化的,如上所示,这应该可行
<?php
class Config {
public static function get($path = null) {
if ($path){
$config = $GLOBALS['config'];
$path = explode('/', $path);
$parent = $path[0];
$child = $path[1];
if(isset($config[$parent][$child])) {
$config = $config[$parent][$child];
}
return $config;
}
return false;
}
}
希望它有所帮助。