我有一个PHP类:
class DB extends mysqli{
public function __construct(
{
parent::__construct('localhost','user','password','db');
}
}
我的问题是我想用一个新的类覆盖这个类,该类使用不同的db用户执行更多特权数据库操作。
class adminDB extends DB{
public function __construct(
{
??
}
}
}
我该怎么办?
答案 0 :(得分:10)
您应该将凭据传递给构造函数:
class DB extends mysqli {
public function __construct($host, $user, $password, $db)
{
parent::__construct($host, $user, $password, $db);
}
}
然后你不需要继承你可以使用:
$adminDb = new DB($adminHost, $adminUser, $adminPassword, $db);
$nonAdminDb = new DB($host, $user, $password, $db);
但如果你真的想要继承,你仍然可以这样做:
class AdminDB extends DB {
public function __construct() {
parent::__construct('adminhost','adminuser','adminpassword','db');
}
}
答案 1 :(得分:-1)
<?php
class mohona{
public $name;
public $age;
public $fname;
public $lname;
public function __construct($cname,$cage,$cfname,$clname){
$this->name=$cname;
$this->age=$cage;
$this->fname=$cfname;
$this->lname=$clname;
}
public function getMohona(){
echo "Full Name: ".$this->fname." ".$this->lname." ".$this->name."<br/>Age: ".$this->age."<br/>";
}
}
class ibrahim extends mohona{
public $relational_status;
public $relation;
public $contact;
public function __construct($cname,$cage,$cfname,$clname,$crelational_status,$crelation,$ccontact){
parent::__construct($cname,$cage,$cfname,$clname);
$this->relational_status=$crelational_status;
$this->relation=$crelation;
$this->contact=$ccontact;
}
public function getIbrahim(){
echo "Full Name: ".$this->fname." ".$this->lname." ".$this->name."<br/>Age: ".$this->age."<br/>"."Relational Status: ".$this->relational_status."<br/>Maritual Status: ".$this->relation."<br/>Contact Status: ".$this->contact;
}
}
$oMohona=new mohona("Mohona","20","Nafis","Anjum");
$oIbrahim=new ibrahim("Ibu","25","Ibrahim","Akbar","Single","Unmarried","blocked");
echo $oMohona->getMohona();
echo $oIbrahim->getIbrahim();
?>