gpt4 book ai didi

php - 静态方法与静态实例

转载 作者:行者123 更新时间:2023-11-29 02:01:46 25 4
gpt4 key购买 nike

考虑下面的代码,我被Lynda.com认为要创建这样的数据库类,我的问题是为什么不创建一个完全用于数据库的静态方法,而不是存储一个实例到静态属性?

<?php
class Database {

private $conn;
private static $init;

public function __construct() {
$this->conn = new mysqli('localhost','root','root','mydb');
}

public static function getInstance() {
self::$init = new self();
return self::$init;
}

}

$db = Database::getInstance();

?>

最佳答案

如果你想使用单例,你应该保护 __construct()

class DB
{
private static $instance;

private function __construct($args)
{
// do some
}

public static function getInstance()
{
// get instance
}
}

$query = 'SELECT etc...';
$stmt = DB::getInstance()->prepare($query);

我在数据库类中使用了这个模式。但是如果你有超过 1 个连接,你不应该!使用单例。

关于php - 静态方法与静态实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com