如果我想创建一个连接类,是否可以将__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;
}
}
?>
如果将构造函数设为私有,则只有该类中的方法才能创建它的实例。
如果你正在实现单例模式(https://en.wikipedia.org/wiki/Singleton_pattern),或者如果你正在创建一个工厂类,这是很有用的。
您提供的代码显示类没有任何其他方法,因此如果是这种情况,私有构造函数将使类无用。
简而言之,如果您需要从类本身之外的代码实例化"Connection"类,请使用公共构造函数。