-2

クラスで__construct関数をもう一度呼び出したい

このようなもの:

class user{
    function __construct($ID = null)
    {
        if($ID){
            //code
        }

    function findUser()
    {
        //code
        $this->__construct($ID);
    }
}

もちろんこれは機能しませんが、これを行う正しい方法は何ですか?

4

4 に答える 4

5
class user{
    function __construct($ID = null)
    {
        if($ID){
            //code
        }

    static function find($id)
    {
        return new user($id);
    }
}

$user = user::find(42);
于 2010-12-22T01:53:56.303 に答える
4

現在のインスタンスの現在の値を上書きする場合は、次のようにします。

class user{
    function __construct($ID = null)
    {
        $this->reinit($ID);
    }

    function reinit($id)
    {
        if($id) {
            //code
        }
    }
}
于 2010-12-22T01:57:38.253 に答える
2

関数の名前を変更して、呼び出すことができるようにします。

class user {
    function __construct($ID = null)
    {
        $this->initialize($ID);
    }

    private function initialize($ID = null)
    {
        if($ID){
            //code
    }

    function findUser()
    {
        //code
        $this->initialize($ID);
    }
}
于 2010-12-22T01:56:07.737 に答える
0

試す:

function findUser(){

   self::__construct($ID);
}
于 2010-12-22T01:54:50.110 に答える