Eğer PHP 5 kullanıyorsanız varsayarsak, yapıcı bir istisna atabilir:
class NotFoundException extends Exception {}
class User {
public function __construct($id) {
if (!$this->loadById($id)) {
throw new NotFoundException();
}
}
}
$this->LoggedUser = NULL;
if ($_SESSION['verbiste_user'] != false) {
try {
$this->LoggedUser = new User($_SESSION['verbiste_user']);
} catch (NotFoundException $e) {}
}
Açıklık için, statik bir fabrika yöntemi bu sarın:
class User {
public static function load($id) {
try {
return new User($id);
} catch (NotFoundException $unfe) {
return null;
}
}
// class body here...
}
$this->LoggedUser = NULL;
if ($_SESSION['verbiste_user'] != false)
$this->LoggedUser = User::load($_SESSION['verbiste_user']);
Bir kenara, PHP 4, bazı sürümleri Kurucuların içinde NULL $ Bunu ayarlamak için izin ama şimdiye kadar resmi olarak onaylanmış ve 'özelliği' sonunda kaldırılır sanmıyorum.