Quel est la différence entre les filtres et les fonctions

Eléphanteau du PHP | 31 Messages

19 avr. 2011, 21:29

Bonsoir,
Je voudrais savoir la réel différence entre les filtres et les fonctions en PHP et lequel est le mieux à utiliser (par exemple pour une validation d'un formulaire ou autre).
Par exemple entre is_int() et FILTER_VALIDATE_INT ou encore is_bool() et FILTER_VALIDATE_BOOLEAN
Merci d'avance

devlop78
Invité n'ayant pas de compte PHPfrance

20 avr. 2011, 01:20

les is_* permettent de vérifier le typage. Le nombre est un integer ou ne l'est pas, point barre.

Les filtres sont généralement plus riches et plus "souples". Ainsi, pour le booléan, la chaine de caractères "on" serait considérée comme booléenne. Elle est donc certainement plus appropriée pour les formulaires. Quant au filtre donnée pour l'integer, tu peux rajouter un interval. Il est aussi possible qu'il accepte les chaines de caractères, mais ce n'est pas précisé dans http://php.net/manual/fr/filter.filters.validate.php

Après, il y a d'autres fonctions comme ctype_digit() particulièrement utile. Perso, j'ai tendance à transtyper les données venant d'un formulaire, puis de les vérifier.