次の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そしてどういうわけか別のもっと簡単な方法があるに違いないと思った。
これを達成するために私が検討できるより良い解決策を誰かが知っていますか?
前もって感謝します