2010-09-23 22 views
0

Je ne sais pas assez sur quand et comment diverses variables sont renvoyées. Considérant que j'ai une instruction conditionnelle avec un objet à valider à l'intérieur de ceci. Ai-je raison de dire que cela est retourné comme une valeur booléenne.objecté retourné comme booléen à l'intérieur si la clause

if($id = $oE->validate($_POST, $_FILES)){ 
... 
} 

Ce que je veux vraiment est pour cela retourner un tableau d'erreurs s'il y a des erreurs, sinon elle retournera l'$ id du contenu mis à jour.

Avec ce qui précède, il semble retourner un booléen vrai si une valeur quelconque est retournée par l'objet validate() ??

+0

Que renverse validate()? bool ou mixte? –

+0

valider retourne $ id = 315 (quelquechose), ou il retourne $ error = array ('error' => etc etc etc) – kalpaitch

Répondre

1

PHP interprète toute valeur non nulle comme vraie. Ce dont vous avez besoin est de passer une référence qui contient des codes d'erreur, et obtenir la fonction soit retourner false sur l'échec ou l'ID en cas de succès. c'est-à-dire:

class Validator() 
    { 
    function validate($post,$files,$errorRef) 
     { 
     //Your code here 
     if ($success) 
      { 
      return $id; 
      } 
     else 
      { 
      $errorRef = $errorCode; 
      return false; 
      } 
     } 
    } 
// 
$oE = new Validator; 
$error = NULL; 
$id = $oE->validate($_POST,$_FILES,&$error); 
if ($id !== false) //If validator did not return false 
    { 
    //Stuff happens 
    } 
else 
    { 
    switch ($error) 
     { 
     //Error Handling Stuff 
     } 
    } 
+0

oui c'est ce que je pensais, mais si j'ai aussi besoin des erreurs $ produites en cas d'échec, plutôt que juste faux. Je suppose que je pourrais le stocker ailleurs ... – kalpaitch

+0

Ça vous permet de faire ça. Il les stocke dans la variable '$ error' que vous passez la référence de (avec l'opérateur' & ') à la fonction ... –

+0

ah oui oui je vois, merci – kalpaitch