J'ai une fonction de validation personnalisée qui vérifie les différentes propriétés d'une variable passée, y compris si la variable isset()
. Toutefois, si la variable n'est pas définie, l'avertissement est lancé lorsque j'appelle la fonction de validation. Les avertissements ne sont pas affichés et le script fonctionne sans accroc, mais je ne veux pas que mon journal d'erreurs soit encombré de toutes ces entrées.PHP - Fonction de validation personnalisée et passage de variable non configurée
La solution facile est de préfixer tous les appels à la fonction avec @
, mais je ne préfère pas pour des raisons évidentes. Sinon, je pourrais supprimer le isset()
de la fonction (ou laissez-le je suppose) et placez à la place le isset()
cocher à côté de l'appel de fonction.
Je ne vois pas ce sont les seules options; Sinon, comment puis-je effectuer le isset()
dans la fonction de validation tout en empêchant ces avertissements d'être enregistrés. J'aimerais toujours que les alertes de variables non définies soient enregistrées globalement, mais pas lors de l'appel de cette fonction.
Voici la fonction:
function validate_data($value, $required = false, $min = false, $max = false, $numeric = false, $email = false){
if($required === true && (!isset($value) || strlen(trim($value)) < 1)){
return false;
}
if($min !== false && strlen(trim($value)) < $min){
return false;
}
if($max !== false && strlen(trim($value)) > $max){
return false;
}
if(strlen(trim($value)) > 0 && $numeric === true && (!is_numeric(trim($value)))){
return false;
}
if(strlen(trim($value)) > 0 && $email === true && !filter_var(trim($value), FILTER_VALIDATE_EMAIL)){
return false;
}
return true;
}//validate_data()
Voici un exemple d'appel:
if(!$someClassName->validate_data($var, true, false, false, false, false)){
//Do some stuff
}
Bon point, il suffit de définir les variables à une valeur par défaut s'il n'est pas défini. PHP depuis trop longtemps et j'oublie d'initialiser mes variables ... –