Dav*_*unt 6 php oop variables global class
我有一个数据库类,它的实例在主宣布index.php为
$db = new Database();
Run Code Online (Sandbox Code Playgroud)
有没有办法让$db变量在所有其他类中被全局识别而不必声明
global $db;
Run Code Online (Sandbox Code Playgroud)
在每个类的构造函数中?
Tyl*_*ter 16
不.您必须在每个类的构造函数中声明Global $ db.
或者您可以使用全局数组:$ _GLOBALS ['vars'];
解决这个问题的唯一方法是使用静态类来包装它,称为Singleton方法(请参阅此处获取解释).但这是非常糟糕的做法.
class myClass
{
static $class = false;
static function get_connection()
{
if(self::$class == false)
{
self::$class = new myClass;
}
else
{
return self::$class;
}
}
// Then create regular class functions.
}
Run Code Online (Sandbox Code Playgroud)
创建单例方法是为了确保只有一个类的实例.但是,因为人们将它用作快捷方式的一种方式,所以它被称为懒惰/糟糕的编程.
StackOverflow知识
如何避免使用PHP全局对象
在不使用全局变量的情况下在PHP中的函数之间共享变量
使全局变量可访问类全局或单例内的每个函数以
进行数据库连接