Я использую этот класс 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 )
)
Теперь, когда я пытаюсь достичь префа в моих скриптах. Это говорит о том, что моя строка является массивом. Поэтому я использовал print_r для отображения массива. Тогда следующий результат:
print_r (Config :: получить ( ‘Настройки / main_color’));
Массив ([header] => включен [title_block] => включен [menu] => включен [слайд-шоу] => включен [left_box] => включен [электронный_блок] => включен [нижний колонтитул] => включен [keurmerken] => включен) [copyright] => включено)
Где я допустил ошибку в своих сценариях?
Если действительно, ваш массив структурирован, как показано выше, это должно работать
<?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;
}
}
Надеюсь, поможет.
Других решений пока нет …