如何在一個類中使用子類?我嘗試使用擴展,但我不認爲這是我正在尋找。正在使用PHP的子類
class Database
{
protected $link;
private $host, $database, $username, $password;
public function __construct($host, $database, $username, $password)
{
$this->host = $host;
$this->database = $database;
$this->username = $username;
$this->password = $password;
$this->connect();
}
private function connect()
{
$this->link = new mysqli($this->host, $this->username, $this->password, $this->database);
//GLOBAL $this->link
if ($this->link->connect_errno)
die('Connection Error: ' . $this->link->connect_errno);
}
public function __sleep()
{
return array('host', 'database', 'username', 'password');
}
public function __wakeup()
{
$this->connect();
}
}
class Users extends Database{
public function getAll(){
$stmt = Database->link->prepare('SELECT id, username, email FROM USERS');
$stmt->execute();
$stmt->bind_result($id, $username, $email);
while($stmt->fetch())
$row[] = array('id' => $id, 'username' => $username, 'email' => $email);
$stmt->close();
return $row;
}
}
在顯示內容的文件
則...
$db = new Database(HOST, DATABASE, USER, PASSWORD);
$users = $db->Users->getAll();
foreach($users as $user){
echo $user['username'] . "<br />";
}
我覺得我的問題是與$stmt = Database->link->prepare
和$users = $db->Users->getAll();
我更是C的傢伙,因此PHP方法還挺有我。有人能準確地描述我需要做什麼來獲得正確的子類操作嗎?
這對我來說不是很清楚。你的意思是實際的繼承類(在這種情況下'extends'是你想要的)還是一個內部類(class-a-class)?我不知道內部類。 – maackle
嗯,我可以這樣做:Users :: getAll(); ?我只是試圖從數據庫中獲取所有用戶,並且這些信息位於數據庫類中。對不起,如果這很難理解我想要的。 – MysteryDev