如果我想创建一个连接类,是否可以将__construct设为私有?或者,如果一次有多个用户,这将阻止用户连接?或者我正在做一些完全错误的事情,这个连接类甚至不应该存在? (使用没有特定类的连接会更好吗?)
代码:
<?php
class Connection
{
private $host = "hostname";
private $db_name = "somedatabase";
private $username = "username";
private $password = "";
private $conn;
private function __construct()
{
try {
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected Successfully Bro";
}
catch(PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
?>
答案 0 :(得分:0)
如果您将构造函数设为私有,则只有该类中的方法才能创建它的实例。
如果您要实现Singleton模式(https://en.wikipedia.org/wiki/Singleton_pattern),或者您正在创建工厂类,那么这很有用。
您提供的代码显示该类没有任何其他方法,因此如果是这种情况,私有构造函数将使该类无用。
简而言之,如果您需要从类本身之外的代码实例化“Connection”类,请使用公共构造函数。