Bonjour à toutes et tous

ci-dessous une partie de code simplifiée où je teste chaque données qui vont rentrer dans la bdd avec une expression régulière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
		if(preg_match ($tab_filtre["nom"], $_POST['nom'] )){
			$NOM = $_POST["nom"];
			if(preg_match ($tab_filtre["prenom"], $_POST['prenom'] )){
				$PRENOM = $_POST["prenom"];
ICI TRAITEMENT DES DONNEES
			}else{
				echo "erreur de filtrage prenom ";echo'<br/>';
			}
		}else{
			echo "erreur de filtrage nom ";echo'<br/>';
		}
	}
Je voudrais remplacer tous ces tests successifs par une fonction ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
$tab_filtre = array(
    "nom" => "#^[A-ZŒ]*[\' \-A-ZŒ]*[A-ZŒ]$#",
    "prenom" => "#^[A-ZŒ][a-zœà-ÿ]*([- ][A-ZŒ][a-zœà-ÿ]*)*$#",
    "adresse" => "#(A-ZŒa-zœà-ÿ0-9\-\' ,.)*#",
	"Code_Postal"=>"#[0-9]{5}#",
	"MAIL"=> "#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",
	"mdp"=> "#[0-9]{5,10}#",
	"VILLE"=> "#^[A-ZŒ]*[\' \-A-ZŒ]*[A-ZŒ]$#",
	"tel"=> "#^0[1-9] ([0-9]{2} ){3}[0-9]{2}$#",
	"date"=> "#^([0-9]{2}\/){2}[0-9]{4}$#",
	"key_confirm"=>"#[0-9]{14}#",
	"Avoir"=>"#^[0-9]*.?[0-9]{0,2}$#",
	);
 
function verif($str_test){
	global $tab_filtre;
		if(preg_match ($tab_filtre[$str_test], $_POST[$str_test])){
			return $_POST[$str_test];
		}else{
			exit("erreur ".$str_test);
		}
}
Donc à la place du premier code j'aurais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
			$NOM =verif("nom");
				$PRENOM =verif("prenom");
ICI TRAITEMENT DES DONNEES
Mais bien sûr ceci ne fonctionne pas en cas d'erreur $NOM= erreur nom qui serait rentré dans ma base.
comment traiter l'exit de cette fonction de verif