Как стать автором
Обновить

Почему не следует использовать `global` в PHP

Многие говорят об этом, но не все могут дать вразумительный ответ на вопрос: «Почему не следует использовать `global` в PHP»?

Мой текущий проект построен по принципу OOM (Object-oriented modelling).

Есть файл config.php. Данный файл содержит массив, который выглядит примерно так:

$config = array();
$config['site_name'] = 'Site Name';
$config['base_path'] = '/home/domain.com/public_html/';
$config['images_path'] = $config['images_path'] . '/media/images';
и т.д.

Потом есть файл functions.php, который, практически везде, требуется на каждой странице (e.g.( require('/include/functions.php');
)
) и внутри functions.php для того, чтобы получить доступ к переменным из config.php, т.е. массиву $config, мне всегда приходится использовать

global $config;


или например,

global $db;

И это та самая часть кода, от которой я хотел бы избавиться.

Кто может предложить вариант доступа к массиву $config и другим подобным массивам, например $db, без использования ключевое слово global, а главное объяснить причину, почему использование global является не просто плохим тоном, особенно в применении с OOP (Object-oriented programming)?
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.