Глобальные переменные неоспоримо зло . Любой, кто говорит вам использовать их, не имеет опыта работы с кодом, который их использует. К сожалению, по моему опыту, гораздо больше PHP-кодеров используют глобальные переменные, чем любой другой язык, в основном из-за незнания.
Практически каждый класс должен быть самосогласованным, что означает, что не должно иметь значения, сколько раз вы обосновываете его в объект с помощью нового. Единственным исключением является шаблон Singleton, но в реальных случаях, когда желательно использовать синглтоны, настолько редки , что практически любое их использование также является не вызываемым недостатком дизайна, который просто тесно связывает код, который также является очень плохо .
PHP кэширует соединения с БД, так что вы можете иметь неограниченное количество mysql_connect () в одной и той же программе, и он будет подключаться только один раз за загрузку страницы (если вы не закроете ее вручную). Поэтому немедленно удалите $ engine из вашего config.php и перепишите весь свой код следующим образом:
function login($username, $password)
{
$engine = new Engine;
//this is custom function in class.php
return $engine->mysql_query('SELECT `user_id` WH...', 'array);
}
Я с радостью объясню * еще 1016 *, если вам это нужно.