Самый простой (но не самый лучший) способ - добавить ключевое слово «global» в каждую функцию. Пример:
$db = new mysqli("localhost", "my_user", "my_password", "world");
function foo() {
global $db;
$db->query(....
}
Гораздо лучший способ - создать собственный класс My_DB и определить его как синглтон. Тогда вы сможете вызывать объект db как экземпляр My_DB.
class My_DB {
protected $_db = null;
protected static $instance = null;
protected function __construct() {
$this->_db = new mysqli("localhost", "my_user", "my_password", "world");
}
public static function getInstance() {
if (empty(self::$_instance)) {
self::$_instance = new self();
}
return self::$_instance;
}
}
И тогда в любом месте вашего кода вы можете сделать следующее:
function foo() {
$db = My_DB::getInstance();
$db->query(....
}