2009-12-07 2 views
4

J'ai une situation (courante) où je renvoie actuellement un résultat de type mixte, parfois un booléen, parfois un message d'erreur. Par exemple:Alternative à renvoyer des erreurs mixtes et des booléens

function checked_thing_is_legal(){ 
// Do stuff and check for errors in here. 
} // Returns true if there are no errors, otherwise returns an error message string. 

Cela se sent sale, et quelqu'un a dit: « il est bon de distiller le code jusqu'à unique, les valeurs de retour fiables », que je trouve être un bon conseil. Alors, quel est le meilleur paradigme pour vérifier les erreurs?

Répondre

5

je vois deux options

utilisation atomique (booléens) validateurs et découpler les messages d'erreur du validateur se

if(!is_valid_email(blah)) print "invalid email"; 

utiliser des objets validateur avec des fonctions test booléen() et une erreur de chaîne() :

$v = new SomeValidator; 
if(!$v->test(blah)) 
    echo $v->error(); 

dans une application rapide et sale, vous pouvez également envisager de retourner une valeur vide si tout va bien

$err = validate_email(blah); 
if(empty($err)) ok else print $err; 
+0

+1 pour ne pas recommander des exceptions – Galen

+0

@Galen .... J'ai aussi ne recommande pas exception en tant que premier choix ... ^^ et par la manière, l'exemple ne ressemble pas à quelqu'un « nouveau » à php pourrait le comprendre. –

+0

@stereofrog - Qu'en est-il quand un message d'erreur n'est pas acceptable (je sais que c'est un peu en dehors de la portée de la question de l'OP). –

Questions connexes