gpt4 book ai didi

php - 在 php 中用什么代替全局

转载 作者:行者123 更新时间:2023-12-02 11:59:56 24 4
gpt4 key购买 nike

每次需要访问函数内的全局变量时,是否有其他方法可以代替使用全局变量?

$db = new ezSQL_mysql("root", "", "payroll", "localhost");

class employee{
function get_emp(){
global $db;

}
}

最佳答案

在普通的全局范围函数中,可以使用 global 关键字,或 $GLOBALS['db'] 超全局数组(这对于可读性来说是更好的选择)。另一种选择是将全局变量作为参数传递到函数中。

在你的类中,最好的方法是依赖注入(inject)。您的类构造函数接收 $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);
}
}

关于php - 在 php 中用什么代替全局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6172003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com