到目前为止我有一个PHP类的构造函数
public function __construct ($identifier = NULL)
{
// Return me.
if ( $identifier != NULL )
{
$this->emailAddress = $identifier;
if ($this->loadUser() )
return $this;
else
{
// registered user requested , but not found !
return false;
}
}
loadUser的功能是查找特定电子邮件地址的数据库。
当我将标识符设置为某个电子邮件,我确信它不在数据库中;第一个IF被传递,并且去第一个ELSE。这里的构造函数应该返回FALSE;但相反,它返回一个具有所有NULL值的类的对象!
如何防止这种情况?谢谢
编辑:
谢谢大家的答案。这是相当快!我看到的OOP方式是抛出一个异常。所以抛出一个,我的问题改变,我该怎么做的异常?
php.net的手册很混乱!
// Setup the user ( we assume he is a user first. referees, admins are considered users too )
try { $him = new user ($_emailAddress);
} catch (Exception $e_u) {
// try the groups database
try { $him = new group ($_emailAddress);
} catch (Exception $e_g) {
// email address was not in any of them !!
}
}