-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 回答