До сих пор у меня есть класс 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!
как я могу это предотвратить? спасибо
EDIT:
Благодарю всех вас за ответы. это было довольно быстро! Я вижу, что путь ООП заключается в том, чтобы выбросить исключение. Так что бросить один, мой вопрос меняется, что я должен делать с исключением? Руководство 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 !!
}
}