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 :

test variable non coherent [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 464
    Points : 4 645
    Points
    4 645
    Par défaut test variable non coherent
    Bonjour,

    je dois tester une variable (rien de fou), mais le test ne se comporte pas comme je le souhaiterai...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function ma_fonction($valeur, $avec) {
     //dump de $avec = 1
     //dump de $valeur (de 0 a <peut-importe> ou - (tiret))
     if($avec == 1) {
      $valeur = $valeur*1.5;
     }
     if($valeur == "-") {
      exit('dans le if');
     } else {
      exit('dans le else');
     }
    }
    ca fonctionne (normal.. c'est enfantin)..SAUF quand $valeur=0
    en effet, pour lui quand $valeur=0, il rentre dans le if : $valeur == "-".... wait...what ?
    j'ai fais des dumps partout pour tester le type de $valeur (c'est en float)
    j'ai teste en forcant (int)$valeur, (string)$valeur...
    rien n'y fait... pour lui, zero (en int) equivaut a "-"...

    j'ai rate quoi ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 464
    Points : 4 645
    Points
    4 645
    Par défaut
    auto-resolution

    quand on a une string (mon tiret) et qu'on le multiplie par un nombre, ca le transforme en float...

    du coup, j'ai ajoute un test if(is_int($valeur)) {} avant de multiplier ma $valeur...

    note : ne pas tester avec is_numeric (comme j'ai essaye pour mes test)
    => mais bien avec is_int
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/03/2012, 17h08
  2. Test multiple sur une variable non définie
    Par Rei Angelus dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/12/2007, 22h01
  3. Réponses: 6
    Dernier message: 16/03/2005, 14h44
  4. [LG]Variable non initialisée.
    Par Loceka dans le forum Langage
    Réponses: 3
    Dernier message: 18/11/2004, 18h36
  5. Réponses: 6
    Dernier message: 13/05/2004, 15h40

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