私有函数__construct()在另一个页面上调用类时不起作用

时间:2013-07-26 17:14:47

标签: php class oop

即时使用以下类型的课程......

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()

当我把它变成公开时,它有效。有没有办法让构造函数私有,仍然有像我一样的调用方法。我在想哪一个更安全。

任何见解都值得赞赏。

2 个答案:

答案 0 :(得分:2)

你的构造函数应该是公共的,因为它是在类上下文之外调用的。

PHP可能会为您隐藏new,但这仍然是正在发生的事情。

答案 1 :(得分:-1)

$y = new data();

应该是

$y = new datas();