我想在我的课程中再次调用__construct函数
类似的东西:
class user{
function __construct($ID = null)
{
if($ID){
//code
}
function findUser()
{
//code
$this->__construct($ID);
}
}
当然这不起作用,但是这样做的正确方法是什么?
答案 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);
}