[英]How to call a function in parent class PHP?
我有兩個PHP類。 第一個是這樣的:
<?php
$myclass = new MainClass;
class MainClass{
public $login;
public function __construct(){
require_once('login.class.php');
$this->login = new login;
}
public function mysql(){
mysql_connect("localhost","root","");
}
}
?>
我的Login類是:
<?php
class Login{
public function checkDB(){
//**** how do I call mysql on MainClass here ?*****
}
}
?>
我需要提及的是,登錄不是Main Class的子類。 所以我想知道如何從Login Class調用MainClass上的mysql
函數嗎?
方法1 :派生類
<?php
require_once('MainClass.php'); // MainClass store as a php file
class Login extends MainClass{
public function checkDB(){
$this->mysql(); //**** call mysql from MainClass here
}
}
?>
方法2 :對象實例
<?php
require_once('MainClass.php'); // MainClass store as a php file
$check_mysql = new MainClass();
class Login extends MainClass{
public function checkDB(){
$check_mysql->mysql(); //**** call mysql from MainClass here
}
}
?>
注意:不要使用MySQL函數,因為它們已被棄用,因此請使用mysqli
或PDO
連接數據庫。
使用此代碼,您只需創建MainClass
對象並調用mainClass函數。
<?php
class Login{
public function checkDB(){
$main = new MainClass();
$main->mysql();
}
}
?>
如果您想為此使用面向對象的處理程序,而不是重新發明輪子,請使用mysqli
類。 這里的文檔,下面的代碼示例:
class Login extends mysqli {
public function __construct($loginid) {
$this->id = $loginid; // example of wrapping
parent::__construct( /* login constants go here */ );
}
. . .
// other functions that can have direct access to the mysqli:: class
}
正如shapeshifter在評論中所說,您想要一個可以從其他類中引用的類。 相反,我可能會做這樣的事情:
<?php
$database = new MainClass();
class Login
{
public function checkDB($database)
{
$database->mysql();
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.