Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2010, 15h38   #1
Membre confirmé
 
Avatar de sorry60
 
Inscription : octobre 2003
Messages : 798
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 798
Points : 202
Points : 202
Par défaut "chaine" == 0 ?

Bonjour,

Quelqu'un pourrait-il m'expliquer pourquoi :

Code :
1
2
3
 
if ( "test" == 0 )
  echo "ok";
Affiche ok.

Quelle valeur est testée avec 0 ?

Merci
__________________
Si je pleure encore qu'un jour tu me reviennes,
C'est que sans toi je suis comme un Roi sans sa Reine.
sorry60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h02   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Si vous comparez un nombre avec une chaîne alors chaque chaîne sera convertie en un nombre
http://www.php.net/manual/fr/languag...comparison.php

0 est comparé avec (int)"test" qui vaut 0.

Il s'agit quand même d'un réponse arbitraire de PHP à une comparaison farfelue.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h05   #3
Membre éclairé
 
Inscription : octobre 2004
Messages : 235
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 235
Points : 360
Points : 360
Tu compares une chaine et un entier, utilise === si tu veux que le type soit discriminant...

http://php.net/manual/en/language.op...comparison.php
Joker-eph est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h35   #4
Membre confirmé
 
Avatar de sorry60
 
Inscription : octobre 2003
Messages : 798
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 798
Points : 202
Points : 202
Oui merci je sais que le test est incorrect et source de nombreux problèmes, ce n'était pas ma question.

Donc pour y répondre, le test s'arrête au 1er caractère qui n'est pas un chiffre, donc comme ici il n'y en a pas, ça rend 0.
__________________
Si je pleure encore qu'un jour tu me reviennes,
C'est que sans toi je suis comme un Roi sans sa Reine.
sorry60 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h03.


 
 
 
 
Partenaires

Hébergement Web