PHP получает только первый элемент массива

0

Привет, я делаю скрипт входа и регистрации. Я глобальный массив hava для моей конфигурации. Но когда я пытаюсь установить соединение с моей базой данных. Он не может получить его из массива только хозяина. Он не будет углубляться в него. Единственная вещь, которую я получаю, - 127.0.0.1 для каждой вещи, которую я хочу иметь, так, чтобы я хотел иметь имя пользователя, я получу 127.0.0.1. Я понятия не имею, что не так, но я думаю, что что-то неправильно в моем Config.php. Также это мой вывод на моем экране. Кто-то знает, что я делаю неправильно?

Я получаю только массив хоста. И когда я хочу вернуть имя пользователя или db, я получаю хост. Изображение 174551 Вот мой код.

index.php

<?php
require_once 'core/init.php';


DB::getInstance();

init.php

    <?php
session_start();

$GLOBALS['config'] = array(
    'mysql' => array(
                    'host'      => '127.0.0.1',
                    'username'  => 'root',
                    'password'  => '',
                    'db'        => 'login'

                    ),
    'remember' => array(
                    'cookie_name'   => 'hash',
                    'cookie_expiry' => '648000'
    ),

    'session' => array(
        'session_name' => 'user'
    )
);

spl_autoload_register(function($class){
    require_once 'classes/' . $class . '.php';
});

require_once '/functions/sanitize.php';

config.php

<?php
class Config{
    public static function get($path = null){
        if($path){
        $config = $GLOBALS['config'];
        foreach($config as $key =>$value){
            if(isset($value)){
                $config1 = $value;
                foreach ($config1 as $key =>$list){
                    return  $list;
                }
            }

        }
          return false;
        }    

    }
}

DB.php

<?php

class DB{
    private static $_instance = null;
    private $_pdo, $_query, $_error = false, $_result, $_count = 0; 

    private function __construct(){
        try{
            $this->_pdo = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password'));
        }catch(PDOException $e){
            echo Config::get('mysql/host') . Config::get('mysql/db') . Config::get('mysql/db'); // Only for testing getting 127.0.0.1 back for each of them.

        }
    }


    public static function getInstance(){
        if(!isset(self::$_instance)){
            self::$_instance = new DB();
        }
        return self::$_instance;
    }
}
Теги:
arrays

2 ответа

5
Лучший ответ
private static $_istance = null;

Tyyyoooooooooooooo :) n отсутствует

редактировать

Typoooooooooo номер 2

'msql' => array(

Должен по mysql, поэтому ваша конфигурация не загружается.

  • 0
    О да, я вижу, изменил это бык все еще имеют ту же проблему.
  • 0
    Какое новое сообщение об ошибке :)
Показать ещё 5 комментариев
0

После перезаписи моего класса Config.php он работал.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню