通过PHP中的另一个类函数再次调用构造函数类?

时间:2010-12-22 01:49:55

标签: php constructor construct

我想在我的课程中再次调用__construct函数

类似的东西:

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

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

当然这不起作用,但是这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:5)

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

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

$user = user::find(42);

答案 1 :(得分:4)

如果要覆盖当前实例中的当前值,我会这样做:

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

    function reinit($id)
    {
        if($id) {
            //code
        }
    }
}

答案 2 :(得分:2)

重命名该功能,以便您可以调用它:

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

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

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

答案 3 :(得分:0)

尝试:

function findUser(){

   self::__construct($ID);
}