가장 쉬운 방법은 각 기능에 '글로벌'키워드를 추가하는 것입니다. 예 :
$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(....
}
그 티켓. –
정말 고마워 ... 두 번째는 '훨씬 낫다'는 말은 ... 장점이 무엇인지 물어봐도 될까요? – JimBo
코드의 어느 부분에서나 전역 변수에 액세스 할 수 있으므로 일부 타사 라이브러리 (또는 코드)에서 재정의 할 수 있으므로 두 번째 방법이 더 좋습니다. 하지만 클래스를 다시 정의 할 수는 없습니다. 이로 인해 치명적인 오류가 발생합니다. – Ololo