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 :

Variable GET non définie et variable GET à zéro ?


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut Variable GET non définie et variable GET à zéro ?
    Bonjour,

    Je voudrais savoir quelle est la différence entre une
    variable GET non définit et une variable GET ayant pour
    valeur zéro.
    J'ai dans mon script le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(!isset($_GET['id']))
    {
      ...//code
     
    }
     
    if($_GET['id'] == 0)
    {
      ...//code
     
    }
    Lorsque la variable id n'existe pas, le code dans le 1er if
    est exécuté (normal), mais le code dans le 2ème if aussi.
    Quelqu'un pourrait-il m'expliquer ce comportement ?

    Merci

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut vérifier le type de la variable car NULL == 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if($_GET['id'] === 0)
    {
      ...//code
     
    }
    aide mémoire :
    http://arnolem.developpez.com/php/co...type/index.php

  3. #3
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Merci !

  4. #4
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Je crois que je me suis réjouis un peu trop tôt.
    En reprenant mon code je viens de m'apercevoir qu'avec
    l'opérateur d'identité "===" le code dans le 2ème if n'est pas
    exécuté même lorsque la variable GET est égale à zéro.

    Je ne vois pas trop quoi faire à part changer la valeur de la
    variable ou inclure les traitements une condition if(isset($_GET['id']).

    Une idée ?

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par tintin72 Voir le message
    Je crois que je me suis réjouis un peu trop tôt.
    En reprenant mon code je viens de m'apercevoir qu'avec
    l'opérateur d'identité "===" le code dans le 2ème if n'est pas
    exécuté même lorsque la variable GET est égale à zéro.

    Je ne vois pas trop quoi faire à part changer la valeur de la
    variable ou inclure les traitements une condition if(isset($_GET['id']).

    Une idée ?
    Une variable $_GET est TOUJOURS de type 'chaîne de caractères'. Donc à comparer avec '0' et non 0 avec l'opérateur ===.

  6. #6
    Membre habitué Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Points : 177
    Points
    177
    Par défaut
    Une variable $_GET est TOUJOURS de type 'chaîne de caractères'. Donc à comparer avec '0' et non 0 avec l'opérateur ===.
    Merci pour ce renseignement.
    Effectivement ça marche maintenant.

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

Discussions similaires

  1. variable Outlook non définie
    Par imsse dans le forum VBA Access
    Réponses: 11
    Dernier message: 19/12/2008, 15h53
  2. Erreur 91 variable objet non définie
    Par kmarcel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/04/2008, 13h17
  3. Réponses: 4
    Dernier message: 06/06/2007, 13h32
  4. Erreur 91 variable objet non défini
    Par sebeni dans le forum Général VBA
    Réponses: 3
    Dernier message: 07/05/2007, 11h12
  5. Réponses: 4
    Dernier message: 16/06/2006, 00h27

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