2

何度も聞かれるかもしれませんが、私は頭が固いです。

MySQL データベースを管理するための次のクラスがあります。

class blog {        
    function show ($mysqli) {
    // Code working on $mysqli here
    }
}

このクラス内の多くの関数で $mysqli を使用するので、 $mysqli 変数をクラスに渡し、各関数内で使用するためにコンストラクターを作成できることを読みました。

$blog = new blog($mysqli);
$blog -> show();

これは可能ですか?

4

2 に答える 2

4

これは依存性注入と呼ばれます。

$mysqliクラスでフィールドを使用し、コンストラクターで初期化して、次のように使用し$this->mysqliます。

class blog {  
    private $mysqli;

    function __construct(mysqli $mysqli) {
        $this->mysqli = $mysqli;
    }

    function show () {
        // Code working on $this->mysqli here
    }
}
于 2013-02-10T23:16:08.157 に答える
1

クラスに保存するには、次のようになります。

class blog {
    private $mysqli;
    function __construct($dbi) {
        $this->mysqli = $dbi;
    }        
    function show () {
    $this->mysqli->query(); //example usage
    // Code working on $mysqli here
    }
}

次に、コードでクラスを使用します。

$blog = new blog($mysqli);
$blog->show();
于 2013-02-10T23:16:17.313 に答える