2017-01-02 17 views
1

私はこの設定クラスを使用して、自分の環境設定を読みやすくしています。設定データが文字列ではなく配列として返されるのはなぜですか?

<?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 :: get( 'settings/main_color'))); [ヘッダー] =>有効[タイトル]ブロック=>有効[スライドショー] =>有効[left_box] =>有効[電子メールブロック] =>有効[フッター] =>有効[keurmerken ] =>有効[著作権] =>有効)

私はスクリプトで間違いを犯しましたか?

+0

getメソッドを確認してください。間違っています – funsholaniyi

答えて

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

を動作するはずですが、それがお役に立てば幸いです。

関連する問題