我有兩個類('database'和'app')。 'app'擴展'database'; 這兩個類都有名稱空間'cms'。用定義的命名空間調用類方法中的mysqli-object方法
問題是我想調用一個mysqli對象的方法close()存儲在類'數據庫'的屬性內。當我嘗試調用該方法,我得到的錯誤:
調用未定義的方法CMS \數據庫:: close()方法
我知道,爲了調用屬於PHP的功能基本名稱空間當前使用不同名稱空間時,可以在該函數前添加「\」。但是,你怎麼能用mysqli_object的方法做類似的事情(如$this->connection->close()
)呢?我的整個方法是錯誤的(如果是的話我應該怎麼做)?
我想這樣的事情在析構函數
call_user_method("close", $this->connection);
,但我得到它說,「親密」不能被稱爲一個錯誤。
我的代碼如下:
的index.php
<?php
use cms\app;
require_once "class.database.php";
require_once "class.app.php";
$app = new app();
?>
class.app.php
<?php
namespace cms;
use cms\database;
class app extends database {
public $connection;
public function __construct(){
$this->connection = new database();
}
}
?>
class.database.php
<?php
namespace cms;
class database {
public $connectionData = array (
"server" => "localhost",
"user" => "root",
"password" => ""
);
public $connection;
public function __construct() {
$this->connection = mysqli_connect(
$this->connectionData["server"],
$this->connectionData["user"],
$this->connectionData["password"]
);
}
public function __destruct() {
call_user_method("close", $this->connection);
}
}
?>
對不起很長的職位,並感謝在adv任何幫助。
如果'應用程序擴展數據庫',爲什麼你要在它的構造函數中實例化一個'新數據庫'? – deceze
這個想法是設計數據庫類,使我可以獨立使用它。 – Benjamin
但是我現在看到,這會產生比解決問題更多的問題,所以我會重做我的課程。 – Benjamin