Рассмотрим следующий код 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".
Я знаю, что могу сделать это, передав объект DB при создании экземпляров класса X и Y, а затем передать его классу A таким образом (как я сейчас делаю с именем таблицы и столбцом), однако я никогда не знаю, сколько раз я мог бы расширить класс А и подумать, что должен быть какой-то другой более простой способ.
Кто-нибудь знает лучшее решение, которое я мог бы рассмотреть, чтобы достигнуть этого?
Заранее спасибо