有没有其他方法,而不是每次我需要访问函数内的全局变量时使用全局?
$db = new ezSQL_mysql("root", "", "payroll", "localhost");
class employee{
function get_emp(){
global $db;
}
}
答案 0 :(得分:6)
在普通的全局范围函数中,要么使用global
关键字,要么使用$GLOBALS['db']
超全局数组(这对于可读性而言是可取的)。另一种方法是将全局变量作为参数传递给函数。
在你的课堂上,最好的方法是依赖注入。您的类构造函数接收$db
作为参数,这使其可用于所有类方法:
// $db was created at global scope
$db = new ezSQL_mysql("root", "", "payroll", "localhost");
class employee {
public $db;
// $db already created in your script is passed as a dependency
// to the class constructor
public function __construct($db) {
$this->db = $db;
}
// Access it as $this->db inside the class
public function get_emp() {
do_something($this->db);
}
}