0

次のタイプのクラスを使用しています...

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

無効なコンテキストからの保護された data::__construct() への呼び出し

それを公開すると、機能します。コンストラクターを非公開にして、私が持っているような呼び出し方法をまだ持っている方法はありますか? どちらがより安全かを考えていました。

どんな洞察も大歓迎です。

4

2 に答える 2

2

コンストラクターは、クラス コンテキストの外部で呼び出されるため、パブリックにする必要があります。

PHP は を使用してそれを隠しているかもしれませんがnew、それはまだ起こっていることです。

于 2013-07-26T17:19:22.363 に答える
-1
$y = new data();

する必要があります

$y = new datas();
于 2013-07-26T17:18:39.780 に答える