Php 每次我实例化一个类时,传入一个db连接对象有什么性能问题吗?

Php 每次我实例化一个类时,传入一个db连接对象有什么性能问题吗?,php,object,reference,scope,Php,Object,Reference,Scope,我的许多课程都需要访问数据库才能完成工作。一段时间以来,我一直在做以下事情: // 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, $my

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

// 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);

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


您绝对不应该使用调用时间传递引用new Car$data和$mysqli,这在PHP 5.3中是不推荐使用的。

也许我对其他语言感到困惑,我认为在C等语言中,例如,当您将变量传递到类或函数中时,所述变量的副本是使用少量内存创建的。由于mysqli对象的状态永远不会改变,根据我的上一个代码片段,我应该在哪里使用用户引用/指针?我可能只是感到困惑,抱歉,如果这没有什么意义的话。对PHP来说不是这样。将对象传递给函数时,总是通过引用传递它。也就是说,少量的内存就是:少量的内存。在使用PHP(一种解释性语言)进行开发时,您不应该花时间考虑这一点。服务器端性能是您在开发网站时最不应该担心的事情。谢谢meagar,感谢您的帮助。如果允许的话,我会在7分钟内标记为正确。