Page 1 sur 1

Le point d'exclamation

Posté : 15 avr. 2008, 19:29
par sylvaing26
Je voudrai savoir si lorsque l'on met un point d'exclamation à une variable cela signifie bien l'inverse de ce qu'il y a dedans
par exemple :
if (!file_exists($filename)) 
veut bien dire "si le fichier n'existe pas ?

Posté : 15 avr. 2008, 20:06
par zeus
! retourne l'inverse du booléen qu'il précéde.

Dès qu'une fonction, ou un groupe de fonction retourne une valeur équivalente à true, ! retourne false, et vice versa

Posté : 15 avr. 2008, 20:09
par sylvaing26
d'accord, donc quand on met un ! c'est pour signifier l'inverse

Posté : 15 avr. 2008, 23:35
par Hywan
Hey :),

attention, zeus a bien précisé sur un booléen. L'inverse d'une chaîne ou d'un entier va te donner des choses très bizarre (voire même une erreur si c'est bien fait, je te laisse tester).

!true te donne false
!false te donne true
et seulement dans ces cas là. Donc si ta fonction ou méthode te retourne un booléen, tu peux utiliser le point d'exclamation, sinon tu oublies ;-) (ou te débrouilles pour avoir un booléen).

Posté : 16 avr. 2008, 08:00
par zeus
En sachant que, en PHP, les valeurs suivantes sont considéré comme false
  • Le booléen FALSE lui-même
  • L' entier 0 (zéro)
  • La chaîne de caractères 0.0 (zéro)
  • La chaîne de caractères vide et la chaîne de caractères "0"
  • Le tableau vide (aucun élément)
  • L' objet vide (aucun élément) (PHP 4 uniquement)
  • Le type spécial NULL
Le reste étant considéré comme true.

par exemple
var_dump( !'' ); // affiche true
Mais c'est, selon moi, une mauvaise idée que de se baser là dessus ;)
Rien de mieux que les comparaison strictes :D