1

CMS を作成しようとしていますが、PHP でクラスを使用することに行き詰まっています。

この小さな接続クラスがありますが、なぜ機能しないのかわかりません。それは私にこのエラーを与えています:

注意: 未定義の変数: 4 行目の C:\Users\eha\Desktop\Carlos' Stuff\xampp\htdocs\test\layout\system\class.php の mysqli

致命的なエラー: 4 行目の C:\Users\eha\Desktop\Carlos' Stuff\xampp\htdocs\test\layout\system\class.php の空のプロパティにアクセスできません

class server_connect {
    function __construct($host, $user, $password, $database) {
        $this->$mysqli = new mysqli($host, $user, $password, $database);
        if ($mysqli->connect_error) {
            die('Connect Error (' . $mysqli->connect_errno . ') '
                    . $mysqli->connect_error);
        }
    }
    protected $mysqli = NULL;
    protected function set_connection(&$serverconnect){
        $this->$mysqli = $serverconnect;
    }   
}

class site_manager extends server_connect {

さて、親要素 $mysqli を呼び出すときに、その構文を取得します

class site_manager extends server_connect {
function __construct(&$conect){
    parent::set_connection($conect);
}
public function getContent($page , $sub){   
    if($page == 'home' || ($page != 'home' && $sub ==NULL))
        $qry = "SELECT * FROM public WHERE section = ?";
    else
        $qry = "SELECT * FROM public WHERE section = ? AND subsection = ?";
    $stmt = parent::$mysqli->stmt_init();
4

3 に答える 3

3

インスタンス変数にアクセスしようとするときは、次のようにする必要があります。

$this->mysqli

あなたはこれをやっています

$this->$mysqli
于 2013-05-06T19:55:23.210 に答える
2

いくつかの問題があります: まず、$this->$variable;を使用しています。である必要があります$this->variable。第二に、ある行で使用$this->$mysqliし、次の行で を省略して$this->$mysqli. 保持する必要があります$this->。メソッドのスコープ内にあり、$this->variable2$variableつの異なる変数です。

于 2013-05-06T19:56:25.293 に答える
2

OOP 記述の構文が間違っています。$this->mysqli代わりに使用する必要があります$this->$mysqli

完全なコード修正:

class server_connect {
protected $mysqli = NULL;
    function __construct($host, $user, $password, $database) {
        $this->mysqli = new mysqli($host, $user, $password, $database);
        if ($this->mysqli->connect_error) {
            die('Connect Error (' . $this->mysqli->connect_errno . ') '
                    . $this->mysqli->connect_error);
        }
    }
    protected function set_connection(&$serverconnect){
        $this->mysqli = $serverconnect;
    }   
}

class site_manager extends server_connect {
于 2013-05-06T19:56:34.843 に答える