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 :

[POO] [Égalité] Grand mistère


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Par défaut [POO] [Égalité] Grand mistère
    bonjour voici une partie de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tmp=$this->group;
    echo("tmp:".$tmp."<br>");
    if ($tmp == "init")
            {
                MyEchoLog("tmp dans le if:".$tmp."<br>");
    voici le retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tmp:0
    tmp dans le if:0
    Je ne comprends pas trop

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Par défaut pas très clair
    je dois tavouer que jai un peu de mal à saisir ton code
    je suis pas expert mais pqoi tu utilises -> (jconnais pas?)
    sinon commence par enlever tes parenthèses après les echo

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Par défaut
    effectivement le echo c'est en faite une fonction a moi qui s'appelle normalement autrement mais je ne voulais pas vous gener avec ca.
    La fonction est sans erreur, c'est sur!
    en mettant "===" au lieu de deux ca marche si quelqu'un peut m'expliquer pourquoi ?

    je mettrais resolu just apres

  4. #4
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    La fleche -> permet de désigner l'attribut d'un objet ou une méthode.
    Les () autours des paramètres du echo je ne pense vraiment pas que ça vienne de ça, echo est une fonction comme une autre.

    Sinon pour le probleme là ... j'ai beau regardé je vois pas
    J'ai eu un pb du genre un jour, j'avais laissé trainer un ; après mon if, j'avais donc tjs l'impression de rentrer dans ma condition qui était fausse. Mais bon là ça ne vient pas de ça

    Non franchement je ne vois pas !

    Je vais regarder ce sujet de près, les mystères ça attire ma curiosité :p

  5. #5
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Le fait que ça marche avec === c'est parce que contrairement à ==, il vérifie aussi le type des données.
    Là tu compares un int à une chaine donc c'est faux.
    1 == '1' // Vrai
    1 === '1' // faux

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Par défaut
    mais pourquoi 0 == "init" avec 2 egales ?

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Par défaut
    oui c'est normale si l'acolade n'est pas fermé! Je vous ai mis qu'un morceau du code

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Par défaut
    merci

  9. #9
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Merci pour l'info stunti
    J'aurais plutot pensé l'inverse vu les cas sur lesquels je suis tombé, mais c'est vrai que d'un point de vu plus "informatique pur", c'est logique

  10. #10
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    En fait pour comparer (==) une chaine et a un integer, PHP converti la chaine en integer.
    Donc "init" en int donne 0.
    d'ou 0==0 retourne true, donc tu rentres dans le if.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 145
    Par défaut fin de condition
    cest normal que tu n'aies pas fermé ta condition if? avec une accolade?

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

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  3. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  4. Surface trop grande
    Par Black_Daimond dans le forum DirectX
    Réponses: 1
    Dernier message: 18/01/2003, 03h02
  5. Réponses: 3
    Dernier message: 16/12/2002, 16h12

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