IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème avec ma condition if


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $msg_id = '5bloublou';
     
    if ($msg_id === 5) {
         echo 'blablabla';
    }

  3. #3
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    ($msg_id == 5 || $msg_id == '5b' )
    Merci de vos renseignement

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 455
    Points : 109
    Points
    109
    Par défaut
    Merci pour cette éclaircissement

    tout est ok pour moi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. openForm, problème avec la condition
    Par Salsaboy60 dans le forum IHM
    Réponses: 1
    Dernier message: 12/02/2009, 22h59
  2. Problème avec une condition IF
    Par Invité dans le forum Windows
    Réponses: 11
    Dernier message: 12/02/2009, 17h17
  3. Problème avec une Condition Ou ||
    Par Jcpan dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 14/01/2009, 13h19
  4. Problème avec les conditions ''sous-ensemble d'un tableau''
    Par djangossoul dans le forum LabVIEW
    Réponses: 2
    Dernier message: 07/06/2007, 13h23
  5. Problème avec une condition
    Par ghan77 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/12/2005, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo