Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 13/05/2011, 09h09   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Par défaut problème avec ma condition if

Bonjour,

J'ai juste une petite question technique afin de me rassurer.

j'ai un if :

Code :
1
2
3
4
5
6
 
$msg_id = '5bloublou';
 
if ($msg_id == 5) {
     echo 'blablabla';
}
quelqu'un peut m'expliquer pourquoi avec 5bloublou ma condition passe et m'affiche blablabla ???

sa voudrait dire que quand je mets pas $msg_id == '5' il prend que le premier caractère???

Merci de votre réponse
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 09h24   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
J'étais prêt à répondre qu'il faudrait arrêter de fumer mais j'ai testé et en effet le test renvoi TRUE.

Solution en attendant que quelqu'un nous dise pourquoi PHP interprète ce test comme vrai :
Code php :
1
2
3
4
5
$msg_id = '5bloublou';
 
if ($msg_id === 5) {
     echo 'blablabla';
}
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 09h28   #3
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci pour la solution mais ce que je voulais c'était surtout avoir une explication du pourquoi du comment et surtout pour être sur qu'on avait rien mis dans mon verre

mais surtout je voudrais savoir si c'est sur de faire comme sa car je voudrai faire un test avec de message qui peut être $msg_id = 5 ou $msg_id = 5a

et si va avec 5 ou 5b sa m'évite de rajouter
Code :
($msg_id == 5 || $msg_id == '5b' )
Merci de vos renseignement
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 09h43   #4
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

C'est toujours sympa ce genre de question : ça permet de se remettre en question et de fouiner un peu dans la doc (merci, ça m'a fait une piqûre de rappel )

Voici la documentation officielle sur les Opérateurs de comparaison : http://www.php.net/manual/fr/languag...comparison.php.

La partie qui nous intéresse le plus est le tableau Comparaison avec plusieurs types, et surtout la ligne 4.

Citation:
Envoyé par php.net
Transforme les chaînes de caractères et les ressources en nombres
Donc, dans ton cas, ta variable $msg_id est d'abord convertie en nombre.

Si tu testes ceci
Code :
1
2
3
4
<?php
$msg_id = '5bloublou';
var_dump((int) $msg_id);
?>
on peut alors remarqué que la conversion donne int(5), d'où l'égalité avec 5.

Et pour finir, voici la page sur la conversion d'une chaîne de caractères en nombre : http://www.php.net/manual/fr/languag...ing.conversion

Bonne lecture
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 09h54   #5
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci pour cette éclaircissement

tout est ok pour moi
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h07.


 
 
 
 
Partenaires

Hébergement Web