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 :

false == 0 ?


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut false == 0 ?
    Bonjour,
    J'étudie un code existant et je me trouve confronté au phénomène suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo $variable; //==> n'affiche rien
    if($variable == 0)
    {
      echo 'je passe dans le if';//==> est affiché et s'arrête ici.
      exit;
    }
    echo 'if passé';
    La variable n'est apparemment pas initialisée, n'affiche rien, mais le test sur sa valeur = zéro est satisfait.

    zéro = false ?

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    $variable est un booléen falseou une string vide. Faire un écho sur une valeur false ne produit rien. Encadre là avec 2 caractères pour t'en persuader.

    Par contre tu peux faire la différence avec l'opérateur === qui compare aussi le type :

    ($variable == 0) est vrai
    ($variable == false) est vrai

    mais

    ($variable === 0) est faux
    ($variable === false) est faux si $variable est une chaîne vide.

  3. #3
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    Salut, une variable non initialisée et non référencée (pas de contexte d'utilisation), retourne NULL.
    Une comparaison avec "==" de NULL et 0 retourne TRUE.

    Pour plus d'infos sur les comparaisons tu peux regardé la :

    http://www.php.net/manual/fr/types.comparisons.php

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Je rajouterais que normalement faire un echo sur une variable non déclarée/initialisée/référencée génère une erreur de notice.

    Normalement, car ceci dépend de certaines configurations comme le error_reporting et display_error du php.ini


    De même que vérifier uniquement l'existence d'une variable avec un isset($variable) peut être tout a fait suffisant, voir même la seule alternative pour entrer ou pas dans une condition au lieu de vérifier sa valeur.

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

Discussions similaires

  1. Mettre à false toutes les tables d'un projet
    Par tomm dans le forum Bases de données
    Réponses: 9
    Dernier message: 28/05/2006, 00h36
  2. Demande d'explication : "return false"
    Par mickeliette dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/10/2004, 10h06
  3. [ASP][VBS] Question sur if et false
    Par bigtoof dans le forum ASP
    Réponses: 2
    Dernier message: 18/06/2004, 16h28
  4. [JTree] SetEnabled( false)
    Par thomas_strass dans le forum Composants
    Réponses: 3
    Dernier message: 29/04/2004, 12h20
  5. Le langage False
    Par Bloon dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 18/09/2003, 15h52

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