到目前为止,我有一个具有构造函数的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 !!
}
}