Если больно, скорее всего, вы
делать это неправильно.
Прежде всего, не видя больше вашего кода, невозможно предоставить более конкретное решение, но я настоятельно рекомендую вам рассмотреть возможность перестройки структуры вашего класса так, чтобы ваши статические функции (похоже, у вас есть длинный список их реализовать) становятся нестатичными.
По сути, вам следует рассмотреть доступ к экземпляру экземпляра SQLMapper, а затем вызвать соответствующий метод из экземпляра. Используя эту парадигму, вы можете просто создать свойство уровня класса для $ _DATABASE, на которое затем могут свободно ссылаться все методы в классе.
Например:
class SQLMapper {
private $_db;
public function __construct()
{
global $_DATABASE;
$this->_db = $_DATABASE;
}
public function find_user_by_id($id) {
$sql = "Select * from User WHERE Id = ?";
$stmt = $this->_db->prepare($sql, $id);
return $stmt->execute();
}
}
С учетом вышесказанного, использование глобалов - это, как правило, признак низкого качества кода, поэтому я также рекомендую вам рассмотреть возможность использования более объектно-ориентированного подхода к вашему текущему дизайну и искать проверенные и настоящие методы для удаления глобалов из вашего приложения в целом .