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'.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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