0

次の間でパフォーマンスを賢明に使用するために何をアドバイスしますか

A)

function db(){ return new mysqli('localhost','user','pass','db'); }

//global scope
$db = db();

function foo(){
//function scope
$db = db();

[...]

}

B)

//global scope
$db = new mysqli('localhost','user','pass','db');

function bar(){
//function scope
global $db

[...]

}

現時点では方法Aを使用していますが、関数の呼び出しにはオーバーヘッドがあり、ほとんどの関数でdb()が呼び出されることを認識しているので、疑問に思っていました。

4

1 に答える 1

0

複数の場所でデータベースにアクセスする場合は、オブジェクトを使用する必要があります。

class db_manager {
    private $db = new mysqli('localhost','user','pass','db');

    public function getDb() {
        return $this->db;
    }
}

そしてそれをこのように呼んでください:

$db = (new db_manager)->getDb();
于 2012-09-20T09:48:58.377 に答える