将全局变量设置为__constructor中的类

时间:2019-12-11 11:39:32

标签: php class

如何在该类中将std::pair<int,int> p{45, 12}; 设置为全局class DB,并将其设置为$db,因为我不想在所有功能中添加_constructor。 如果我在所有功能中都设置了global $db,则可以使用,但是在global $db中,则不能使用。

__constructor

1 个答案:

答案 0 :(得分:0)

我认为您对global的使用有些偏离。 global $db的语义含义:$db是全局范围的变量,请在此函数的本地范围内使用此变量。因此,我假设在您的代码或导入中,$ db在某个地方带有数据库对象初始化了。

如果是这样的话,反之亦然:

        function __construct(){
            global $db; // first, make it locally visible
            $this->db = $db; // remember it for later use in this class
        }

但是:$ db 必须必须在创建类之前进行初始化。在您的示例代码中,没有任何提示来自何处以及它到底是什么。

假设它已经在创建Login实例之前进行了初始化,则可以使用

            $this->db->query("...");

在每种方法中。因此,除了构造函数外,无需使用任何其他方法编写global $db;。而是使用$this->db中的本地副本。

没有不使用全局变量就无法在每个局部函数范围内强制使用全局变量的方法。

相关问题