gpt4 book ai didi

php - 如何为一个类的所有方法声明一个变量为全局变量

转载 作者:行者123 更新时间:2023-11-29 06:34:29 25 4
gpt4 key购买 nike

我正在使用 MYSQL PDO 进行 MYSQL 查询,并且我已将数据库连接存储在变量 $db 中。在类的方法中使用 PDO 查询时,我必须在每个类中将 $db 声明为全局变量。有没有一种方法可以立即将其声明为全局的并且它适用于所有方法?以下是我正在做的事情:

 <?php
class example {
method 1 {
global $db;
other statements
}
method 2 {
global $db;
other statements
}
}
?>

下面的代码也没有用。

 <?php
class example {
global $db;
method 1 {
statements
}
method 2 {
statements
}
}
?>

最佳答案

我建议这样做

<?php
class example {
protected $db;

public function __construct(name\space\DB $db) {
$this->db = $db;
}

public function method1() {
$this->db->query()...
}

public function method2() {
$this->db->query()...
}
}
?>

像这样将 DB 类传递给其他类称为依赖注入(inject)。这是一个常见且良好的约定。如果您不确定它的含义,我强烈建议您阅读它。

传入数据库类后,我可以将其注册为类示例范围内的属性。然后这个类中的所有方法都可以使用它。

关于php - 如何为一个类的所有方法声明一个变量为全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821935/

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