0

我的许多课程都需要访问数据库才能完成工作。一段时间以来,我一直在做类似以下的事情:

// Create a (one) database object
$mysqli = new mysqli("host", "username", "password", "db");

// Pass database object into each new object that requires database interaction as follows
$car = new Car($data, $mysqli);
$plane = new Plane($data, $mysqli);
// etc

然后每个类都有一个私有的 $mysqli 成员,传入的 mysqli 对象在构造中被分配如下:

class Car {

    private $mysqli;

    public function __construct($data, $mysqli) {

        $this->mysqli = $mysqli;

    }

}

然后类方法可以像这样轻松地使用 mysqli 对象:

public function fuelLevel() {

    $this->mysqli->query("SELECT fuel_level FROM fuel_tank");

}

我的问题是,如果我要创建几千个这样的对象,我会遇到任何性能问题吗?我认为这样做在我的整个应用程序中在技术上只有一个数据库连接是正确的吗?或者我应该使用下面的引用(指针?)来避免担心的性能开销?

$car = new Car($data, &$mysqli);
$plane = new Plane($data, &$mysqli);
4

1 回答 1

0

不,这不可能造成任何可衡量的性能影响。您是对的,您通过引用传递了一个连接对象。在使用 PHP 进行开发时,这种优化级别不是您应该关心的。

您绝对不应该使用在 PHP 5.3 中已弃用的调用时传递引用 ( new Car($data, &$mysqli))。

于 2012-06-29T14:16:24.733 回答