Pourquoi (parce que j'imagine qu'il y a une ou plusieurs raisons)
existe-t-il plusieurs fonctions dans PHP qui permettent la v�rification
de type (ctype_, is_, filter_) ?
Merci.
Heu... Parce que PHP est fondamentalement un empilage de gros hacks
cradingues et de fonctions ad-hoc, sans rien qui ressemble de pr�s ou de
loin � une r�flexion pr�alable, une vue d'ensemble, un souci de
coh�rence, ou quelque autre �l�ments en rapport avec la notion de
"design" ?-)
Bon, ok, je --->[]
PS : contrairement � ce que le troll^Mpost ci-dessus pourrait laisser
croire, j'ai une certaine sympathie pour PHP... Malgr� tout.
La diff�rence vient du principe de fonctionnement. Par exemple:
* is_numeric() va v�rifier que l'argument est bien num�rique et
acceptera 123, "0xFF" (hexadecimal), 0123 (octal), "+012.345e6", 3.14
* ctype_digit() va v�rifier que tous les �l�ments de la chaine sont des
chiffres, 123 sera accept� mais pas 3.14
* filter_var() (qui n'existe que depuis PHP 5.2), ainsi que son nom
l'indique, permet d'appliquer un filtre sur la variable et son
utilisation pour simplement tester un type me semble �tre une solution
disproportionn�e.
Notons d'ailleurs que filter_var() retourne soit la valeur filtr�e soit
false, alors que les deux autres fonctions retourne un booleen.
--
R�seau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communaut� Francophone sur les Eggdrops: http://www.eggdrop.fr
> Pourquoi (parce que j'imagine qu'il y a une ou plusieurs raisons)
> existe-t-il plusieurs fonctions dans PHP qui permettent la v�rification
> de type (ctype_, is_, filter_) ?
Il n'ont pas le m�me but, et peuvent ne pas partager la m�me
s�mantique. Les fonctions is_int, is_string, is_scalar, etc sont
relatives aux types natifs du langage.
ctype_ reprend les fonctions de la stdlib C (isdigit devient
ctype_digit).
filter_ est un ensemble de fonctions dont le but est de permettre le
filtrage des entr�es (plut�t que leur simple validation).
--
Micka�l Wolff aka Lupus Michaelis
http://lupusmic.org
C'est exactement ce que je pense. Pour ᅵtre plus politiquement correct,
je dirais que cela vient de tout l'historique de PHP, et qu'il n'est
bien ᅵvidemment pas question de supprimer de vieilles fonctions parce
qu'on en a des nouvelles.
Les fonctions ctype_ viennent directement de la libc :
<http://pwet.fr/man/linux/conventions/posix/ctype_h>.
Les fonctions is_ viennent plutᅵt du fait que PHP est un langage ᅵ
typage faible (nᅵcessitᅵ de distinguer aussi bien le type de certaines
variables que les transtypages possibles).
Quant aux fonctions filter_ elles sont plutᅵt orientᅵes web, et plus
gᅵnᅵralement traitement de donnᅵes provenant de l'extᅵrieur.
> PS : contrairement ᅵ ce que le troll^Mpost ci-dessus pourrait laisser
> croire, j'ai une certaine sympathie pour PHP... Malgrᅵ tout.
Moi aussi. Le bazar n'est pas forcᅵment plus mauvais que la cathᅵdrale...
Tiens c'est marrant, vous avez r�pondu en m�me temps par couple :)
Merci pour vos opinions.