переменные — принято ли называть переменную php как $ _xxx?

я строю сайт, и я включил файл настроек с именем «settings.php»,
я думаю, что это круто — зарегистрировать глобальную переменную по имени: $ _SETTINGS
как массив настроек сайта (db_name, db_pass …. и т. д.)
как так:

<?php
$_SETTINGS = array();
$_SETTINGS['DB_HOSTNAME']= 'localhost';
$_SETTINGS['DB_NAME'] = 'db_test';
$_SETTINGS['DB_USERNAME'] = 'db_user';
$_SETTINGS['DB_PASSWORD'] = 'p422w0rd';
?>

а затем получить доступ к этим настройкам на подстраницах … путем доступа к $ _SETTINGS …

этот код работает просто отлично,
но мне любопытно, допустимо ли среди сообщества программистов php называть ваши собственные переменные как $ _?
или мой код считается плохим дизайном?

Спасибо

0

Решение

Вы можете сделать это, но я бы не рекомендовал это, так как суперглобальный переменные также имеют этот шаблон / префикс, например $_SERVER, $_SESSION, $_GET что, возможно, немного сбивает с толку.

Но согласно руководство. Технически вы можете сделать это:

допустимая переменная название начинается с буква или подчеркивание, с последующим на любое количество буквы, цифры или подчеркивания. Как регулярное выражение, это будет выражаться так: ‘[A-Za-Z_ \ x7f- \ XFF] [A-Za-z0-9_ \ x7f- \ XFF] *’

В конце концов, это личное предпочтение тому, что вы делаете.

1

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

Мое личное мнение, что это плохая идея. Лучшее решение — создать одноэлементный класс, обеспечивающий настройку всего приложения.

Что-то вроде этого:

class MyConfigProvider
{

private $config = array();

private static $instance = null;

public static function getInstance()
{
if (self::$instance === null)
self::$instance = new self();

return self::$instance;
}

private function __construct(){}

public function getConfig()
{
return $this->config;
}

public function setConfig(array $config)
{
$this->config = $config;
}
}

Вы можете получить конфигурацию во всех местах в вашем приложении с помощью

$config = MyConfigProvier::getInstance()->getConfig();

Это не лучшее решение, но его легко реализовать и оно работает

1

По вопросам рекламы [email protected]