即时使用以下类型的课程......
class datas{
protected $req ;
protected $db ;
private function __construct()
{
$this->db = new Database('localhost', 'user', 'pass', 'db');
$this->db->connect();
}
public function prnt()
{
echo "afafa6e5f1ga56d18a1ge";
}
}
当我尝试访问类
时$y = new datas();
$y->prnt();
从无效上下文
调用受保护数据:: __ construct()
当我把它变成公开时,它有效。有没有办法让构造函数私有,仍然有像我一样的调用方法。我在想哪一个更安全。
任何见解都值得赞赏。
答案 0 :(得分:2)
你的构造函数应该是公共的,因为它是在类上下文之外调用的。
PHP可能会为您隐藏new
,但这仍然是正在发生的事情。
答案 1 :(得分:-1)
$y = new data();
应该是
$y = new datas();