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 :

Comment afficher false ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut Comment afficher false ?
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "*".phpversion()."*".(false)."*B*".(true)."*C*";
    AfficheComment expliquer ceci?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Par défaut
    Bonjour,

    L'explication est simple, true et false sont des mots clés. Lors d'une demande d'affichage de ces mots alors php indique les valeurs numérique 0 pour false et 1 pour true. Un type booléen est un type qui représente la vérité, afficher une telle définition n'est pas possible. Donc une norme cette norme a été appliqué .

    Mais attention ceci ne veut pas dire que true est forcément égal à 1 ou false à 0. En gros c'est comme si l'affichage de ces mot-clés utilisaient automatiquement un cast numérique avec une règle prédéfinie de false // 0 et true // 1.

    D'ailleurs tu peux t'en persuader car 1 === true // = false.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Merci pour ta réponse.

    Mais je ne comprend pas bien.
    Tu me dis, entre autres, que true n'est pas forcément égal à 1.
    Et que false n'est pas forcément égal à 0.

    Lorsque que echo affiche 1 pour true, je m'attend logiquement à voir 0 (ou -1 ou autre valeur à la limite).
    Mais pas une chaîne vide pour un echo false (ou alors j'ai perdus toute logique).

    Ou alors, il faut que je comprenne; si chaîne vide ça veut dire false, sinon c'est true.
    Donc ma question pourrait être: est-on certain qu'une chaîne vide est forcément false ET DONC qu'une chaîne non vide est forcément égale à true?

    Mis à part que true est égal à true ET false est égal à false,
    on est sûr de quoi alors?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut bien comprendre qu'il s'agit de conversion et non pas d'affichage de la variable réelle.
    echo ne renvoit que des chaines de caractère, si tu demandes un echo d'une variable qui n'est pas une chaine de caractère, sa valeur est convertie en chaine de caractère pour son affichage.
    Si tu veux voir la valeur réelle de la variable, il faut utiliser var_dump().

    Une valeur booléenne TRUE est convertie en la chaîne "1". Une valeur booléenne FALSE est convertie en "" (une chaîne vide)
    Ce n'est pas logique mais je n'ai pas trouvé la raison par contre.

    Du détail :
    http://www.php.net/manual/fr/types.comparisons.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Merci à vous deux.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Une valeur booléenne TRUE est convertie en la chaîne "1". Une valeur booléenne FALSE est convertie en "" (une chaîne vide)
    Ce n'est pas logique mais je n'ai pas trouvé la raison par contre.
    Ce n'est pas logique par rapport à TRUE, mais si l'on se place au niveau de l'affichage (sans considérer ce qu'affiche TRUE), on peut considérer que FALSE ne peut (doit) pas être converti en une chaine quelconque, pas même 0 ?

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

Discussions similaires

  1. [web] comment afficher les erreur d'un cgi
    Par chtiboss dans le forum Web
    Réponses: 6
    Dernier message: 24/12/2003, 11h22
  2. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33
  3. [debutant] Comment afficher un integer a l'ecran
    Par Johngame dans le forum DirectX
    Réponses: 1
    Dernier message: 05/06/2003, 20h35
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

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