考虑以下 PHP 代码:
<?php
require_once("myDBclass.php");
class a {
private $tablename;
private $column;
function __construct($tableName, $column) {
$this->tableName = $tablename;
$this->column = $column;
}
function insert() {
global $db;
$db->query("INSERT INTO ".$this->tableName." (".$this->column.") VALUES (1)");
}
}
class x extends a {
function __construct() {
parent::construct("x", "colX");
}
}
class y extends a {
function __construct() {
parent::construct("y", "colY");
}
}
?>
我有我的 $db 对象,该对象在另一个文件中实例化,但希望以某种方式将其传递到类 a 的函数中,而不使用 global 关键字,每次我在类“a”中定义一个新函数时。
我知道我可以通过在实例化类 X 和 Y 时传递 DB 对象,然后以这种方式将它传递给类 A 来做到这一点(就像我目前正在处理表名和列一样),但是我不知道我可以扩展多少次类A 并认为一定有另一种更简单的方法。
有人知道我可以考虑实现这一目标的更好解决方案吗?
提前致谢