现在,我正在开发两个用于与 MySQL 数据库交互的类——一个扩展了另一个。他们来了:
class DB_MySQL {
protected $dbuser;
protected $dbpass;
protected $dbhost;
protected $dbname;
protected $dbh; // Database connection handle
public function __construct($dbuser, $dbpass, $dbhost, $dbname)
{
$this->dbuser = $dbuser;
$this->dbpass = $$dbpass;
$this->dbhost = $dbhost;
$this->dbname = $dbname;
}
//Used to create connections - almost always called by execute()
protected function connect()
{
try
{
$this->dbh = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
}
catch(PDOException $e)
{
print "Error!: ".$e->getMessage()."<br/>";
die();
}
}
和子类:
class CheckOut extends DB_MySQL{
function __construct()
{
parent::__construct();
}
}
我刚开始写它们,所以对它们来说还没有“肉”。如果有人看到任何重大问题或任何建议,请不要犹豫指出。
不过,我的问题是子构造函数将如何与父构造函数交互。我的计划是简单地创建一个 CheckOut 对象而不启动父对象。可以看出,我的父构造函数有四个值。那么,我是否必须在子构造函数中重新定义这些值?说清楚,我的意思是:
class CheckOut extends DB_MySQL{
function __construct($dbuser, $dbpass, $dbhost, $dbname)
{
parent::__construct($dbuser, $dbpass, $dbhost, $dbname);
}
}
当然还要定义这些变量。或者我可以在创建对象时添加这些值并将其隐式传递吗?
任何帮助表示赞赏。