Почему данные моих предпочтений возвращаются в виде массива, а не строки?

Я использую этот класс 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] => включено)

Где я допустил ошибку в своих сценариях?

1

Решение

Если действительно, ваш массив структурирован, как показано выше, это должно работать

<?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;
}
}

Надеюсь, поможет.

0

Другие решения

Других решений пока нет …