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 :

$b=($a==15); me retourne 1 !


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut Retours de valeur false booleens
    Bonjour

    voila je debute en php j'ai fais un petit script pour tester des variables un peu plus complexe et en faisant ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $a=10;
    $b=($a==15);
    if($b=1){$c="vrai";}
    else {$c="faux";}
    echo '$a vaut '.$a."<br />";
    echo '$b vaut '.$b."<br />";
    echo '$c vaut '.$c."<br />";
    ca me retourne ca :
    $a vaut 10
    $b vaut 1
    $c vaut vrai

    mon but c'est pas d'afficher absoluement $c vaut faux mais de comprendre pourquoi $b=($a==15); me retourne $b=1 alors que $a est different de 15.

    merci d'avance au nom des noobs !

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    C'est parce que dans ton if tu n'utilise pas un égal logique mais un égal d'assignation... Donc forcément ça sera vrai. Voici le code que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $a=10;
    $b=($a==15);
    if($b==1){$c="vrai";}
    else {$c="faux";}
    echo '$a vaut '.$a."<br />";
    echo '$b vaut '.$b."<br />";
    echo '$c vaut '.$c."<br />";
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    mon dieu j'ai honte ):

    du coup echo $b; ne me retourne plus rien?

    simplement par curiosité pourquoi pour $b vrai il me retourne 1 et pour $b faux il me retourne rien et pas 0?


    merci Yoteco pour ta réponse!!

  4. #4
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut
    parce que contrairement à d'autres langages PHP ne sait pas de quel type est une variable qui ne contient rien
    il ne pourra pas te dire si
    $b = 0;
    $b = '';
    $b = null;
    $b = false;
    etc etc

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 99
    Par défaut
    Ok je connais pas trop les booleens mais j'avais cru comprendre que pour un booleen il n'y avait que 2 valeurs possible true ou false, traduite par 1 et 0 en prog?

    ce que je comprend pas c'est que si je fais un gettype sur $b il me dit bien que c'est un booleen pourtant...
    et je trouve bizar pour ne pas dire étrange que php sache traduire un booleen true par 1 et pas un booleen false par 0, non?

    Si je fais un settype($b,"bool"); il ne me met pas plus de valeur pour $b ):

    mais encore une fois je connais pas trop les booleens donc dsl si je dis des aneries. (la boucle est bouclée )

    merci pour ta réponse en tous les cas, je vais faire quelques recherche dans ce sens.

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Peut-être serait-il plus sûr de typer d'emblée $b comme un bool et de lui affecter ensuite le résultat de ta condition...?

    Il semble qu'il décode un peu mal le type de $b avec ton attribution directe cette fois...

    Concrètement je veux dire essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $a=10;
    $b=false;
    $b=($a==15);
    if($b==true){$c="vrai";}
    else {$c="faux";}
    echo '$a vaut '.$a."<br />";
    echo '$b vaut '.$b."<br />";
    echo '$c vaut '.$c."<br />";
    ?>
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 13h11
  2. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 14h48
  3. Réponses: 2
    Dernier message: 06/03/2003, 17h37
  4. Retourner un talbeau
    Par taupin dans le forum C
    Réponses: 7
    Dernier message: 19/01/2003, 05h22
  5. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 15h16

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