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 :

intval() et (int) ne fonctionnent pas comme je l'avais pensé


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    webmaster amateur
    Inscrit en
    Septembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Bulgarie

    Informations professionnelles :
    Activité : webmaster amateur

    Informations forums :
    Inscription : Septembre 2017
    Messages : 10
    Points : 15
    Points
    15
    Par défaut intval() et (int) ne fonctionnent pas comme je l'avais pensé
    Bonjour,

    comment est-il possible que $data soit égal à "RANDOMSTRING" dans le code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    $data = intval('TEST 123');	
    if ($data == 'RANDOMSTRING' ){
    	die("CETTE LIGNE NE DEVRAIT JAMAIS S'AFFICHER PUISQUE $data N'EST PAS EGAL A 'RANDOMSTRING' ");
    }
    echo "CETTE LIGNE DEVRAIT S'AFFICHER";
    J'ai remplacé intval() par (int) sans amélioration

    Est-ce que vous connaissez une solution pour que $data ne soit pas égal à 'RANDOMSTRING' ?

    J'ai remarqué qu'en utilisant "===" au lieu de "==" les choses rentrent dans l'ordre mais que se passe t'il avec intval() ? est-ce normal ? Y-a t-il une autre fonction qui retourne vraiment un integer sans qu'on soit obligé d'utiliser "==="?

    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
    Y-a t-il une autre fonction qui retourne vraiment un integer
    Ces fonctions retournent vraiment un entier.
    Mais comme tu compares un entier avec un chaine de caractère, ça donne des résultats contre-intuitifs.
    http://php.net/manual/fr/language.op...comparison.php

    C'est la logique de ton traitement qu'il faut repenser.
    Ton test est inutile. Après intval(), ta variable ne peut pas valoir 'RANDOMSTRING'.

Discussions similaires

  1. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  2. requete qui ne fonctionne pas comme je shouterais
    Par domino_dj dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2007, 12h27
  3. un if qui ne fonctionne pas comme je veux
    Par Kelly182 dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2006, 15h12
  4. * du SQL pour un INT ? % ne fonctionne pas...
    Par Allen dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/04/2006, 11h23
  5. time.sleep() ne fonctionne pas comme souhaité
    Par Olivier_ dans le forum Général Python
    Réponses: 3
    Dernier message: 19/11/2005, 01h46

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