true/false vs. 1/0

Eléphant du PHP | 80 Messages

05 févr. 2010, 14:45

J'aimerais savoir si dans le code PHP, true/false peuvent respectivement être remplacés par 1/0. Est-ce que ça peut modifier l'exécution du code ? Si oui, dans quels cas par exemple ? IMHO ça ne change strictement rien, mais peut-être qu'il y a des cas que je n'ai pas envisagé...

PS. Je laisse de coté l'aspect lisibilité/review du code, donc ma question se limite au caractère purement technique.

ViPHP
AB
ViPHP | 5818 Messages

05 févr. 2010, 14:56


Eléphant du PHP | 86 Messages

05 févr. 2010, 15:00

Je dirais que la différence principale est la suivante :
$i = 0;

if($i == false)
	echo "i == false<br />";
if($i === false)
	echo "i === false";
Si tu exécutes ce script, tu verras que le deuxième echo ne s'affiche pas, car il s'agit d'une comparaison stricte

ViPHP
ViPHP | 5462 Messages

05 févr. 2010, 16:21

apres tu peux utiliser FILTER_VALIDATE_BOOLEAN
http://www.php.net/manual/fr/filter.fil ... lidate.php

Eléphant du PHP | 453 Messages

05 févr. 2010, 16:57

[...]s'agit d'une comparaison stricte
+1
[...]apres tu peux utiliser FILTER_VALIDATE_BOOLEAN
http://www.php.net/manual/fr/filter.fil ... lidate.php
Je ne me souvenais plus de cette constante. J'ai plutôt tendance à utiliser EMAIL ou URL ou IP. Pour expliquer à MainMa, comment s'utilise ces constantes entres autres, ça se passe comme ceci :
$resultat = filter_var($chaine_a_traiter,CONSTANTES_FILTRES_VARIABLES_PREDEFINIES);
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 80 Messages

05 févr. 2010, 17:52

Je dirais que la différence principale est la suivante :
$i = 0;

if($i == false)
	echo "i == false<br />";
if($i === false)
	echo "i === false";
Si tu exécutes ce script, tu verras que le deuxième echo ne s'affiche pas, car il s'agit d'une comparaison stricte
Ah oui, c'est vrai. D'ailleurs, je suis bête, moi : pareil si je remplace tous les true/false par 0/1, gettype et autres vont avoir des résultats différents.
apres tu peux utiliser FILTER_VALIDATE_BOOLEAN
http://www.php.net/manual/fr/filter.fil ... lidate.php
Ah, je savais pas, ça.


Bref, merci pour vos réponses.