Есть файл, куда подключаются файл с классом с модели (Model) и файл с классом подключения к базе (sql). В файле с классом sql под классом создаю глобальную переменную $db и создаю в ней экземпляр класса sql: Код (Text): global $db; $db = new sql; Далее делаю выборку из базы в методе в файле с подклассом модели: Код (Text): $result = $db->query(...); но переменная $db уже потерялась по дороге. Работает только если с файлом подключения к БД добавить экземпляр класса sql в глоб. переменную $GLOBALS: Код (Text): $GLOBALS['db'] = new sql; а затем уже делать выборку через эту переменную: Код (Text): $result = $GLOBALS['db']->query(...); Но как то это не очень удобно. Попробовал создать переменную $db из $GLOBALS['db'] в файле, где подключаются эти файлы, но $db все равно теряется. Что я делаю не так?
$result = $db->query(...); у тебя скорее всего лежит внутри функции. там также надо сделать global $db;
Строку global $db тебе придется написать не в одном месте, а в каждом методе, который будет использовать $db ! global не "создает переменную", а говорит интерпретатору что переменную с таким именем надо искать в глобальной области видимости, а не в контексте данного метода.
Браток, не тупи. Создавай один раз. Пиши global каждый раз. Добавлено спустя 7 минут 32 секунды: лучше вообще не использовать глобальные переменные. зависимости надо внедрять в объекты — гугли push и pull внедрение зависимостей. а global или $GLOBAL это разное написание одного и того же г.