在您的代码中,您在类方法中尝试访问类外部定义的变量时遇到错误。出现此问题的原因是,在 PHP 中通常不建议直接从类内访问全局变量。但是,有几种方法可以实现此目的:
首选方法是实现依赖注入。这涉及将数据库对象作为参数传递给类构造函数,允许类访问和使用变量,而无需全局作用域。
class Paginator { private $db; public function __construct(DB_MySQL $db) { $this->db = $db; } // ... } // Usage: $db = new DB_MySQL("localhost", "root", "", "test"); $pagination = new Paginator($db);
或者,您可以将数据库实例直接注入到需要它的方法中。
class Paginator { public function get_records($q, DB_MySQL $db) { // ... } } // Usage: $pagination = new Paginator(); $pagination->get_records("SELECT * FROM `table`", $db);
虽然通常不鼓励这样做,但您可以使用 global 关键字来访问类方法中的全局变量。但是,这种技术可能会使代码变得混乱并使其难以维护。
class Paginator { public function get_records($q) { global $db; // ... } } // Usage: $db = new DB_MySQL("localhost", "root", "", "test"); $pagination = new Paginator();
请记住,在类中使用全局变量会带来潜在的缺点,包括依赖性问题、可测试性降低和代码清晰度问题。因此,在 PHP 中从类外部访问变量时,建议考虑依赖注入或将实例注入到方法中。
以上是如何访问 PHP 类中的全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!