2016-01-26 3 views
0

Я пытаюсь создать глобальный конфигурационный файл в моем PHP проекта, по сути, у меня есть это содержание:Как создать глобальный файл конфигурации?

class SystemConfiguration 
{ 
    // Settings 

    public static $base_url = 'http://localhost/Application/'; 
    public static $db_host  = 'localhost'; 
    public static $db_name  = 'app'; 
    public static $db_username = 'root'; 
    public static $db_password = '123456'; 
} 

теперь содержание выше помещается в config.php файл, этот файл находится в наличии в папке root/settings/ , Теперь то, что я пытаюсь достичь получить переменную, включенный в SystemConfiguration файл из другого файла, что я пытался, например, в index.php:

<?php 
     require_once("system/config.php"); 

     $this->$base_url; 

, но когда я загружаю index.php я получаю не загружать ответ данные на вкладке сетевой консоли, что я сделал неправильно?

+1

'SystemConfiguration :: $ base_url' – Federkun

+0

1) вы не инстанцировании класс; 2) $ это относится к самому классу, из класса _в классе; 3) Ваши свойства _static_, между прочим; 4) - это правильный путь? 5) Почему класс в первую очередь, а не простой массив? –

+0

как config.php доступен в root/settings/и require_once ("system/config.php") ;? –

ответ

1

после включения папки имеет свой класс, который вы можете назвать его ВАР, делая объект из класса, в случае статических переменных, которые вы можете позвонить напрямую, как показано ниже:

SystemConfiguration::base_url; 

где вы можете вызывать статические переменные: : и в случае отсутствия статического вы называете их инициализации объекта из вашего класса:

$object_system_configuration = new SystemConfiguration(); 
$object_system_configuration->base_url; 
+0

Если я вызываю '$ object_system_configuration-> base_url;' ничего не печатают, почему? – Sandokan

+0

, потому что ваша переменная является статической переменной и статическими членами, доступными по классу, вам не нужно инициализировать объект, http://php.net/manual/en/language.oop5.static.php –

+0

Вы можете обновить пример? – Sandokan