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 :

Conversion de type


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut Conversion de type
    Bonjour à tous,

    J'ai un petit soucis au niveau des tests de conversion et du type des données.
    La conversion en PHP est surprenante j'en perd un peu mon JAVA ^^.

    En fait quand je fais çà :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $toto = "1244544jjjj";
    $titi = 1244544;
     
    if ($titi == $toto) 
      {echo"egal";}
    il s'affiche "egal"...

    Mo problème de base vient du fait que je souhait vérifier que le type de données est compatible avec un champ de type INTEGER avant de l'intégrer en base, la variable vient d'un "$_POST".

    Mais, j'ai essayé plusieurs solutions, allant du changement de type avec les "(int) ma_var" mais rien n'y fait je trouve pas de solution.

    Je développe généralement en Java, le typage est précis et le moindre faux pas dans les types remontes des erreurs, ce qui n'est vraiment pas le cas en PHP.

    merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    bonjour,

    ben tu me colles sur ta comparaison....

    un lien qui pourrait peut etre t'aider mais qui n'explique pas le cas que tu exposes

    http://fr.php.net/manual/en/types.comparisons.php

  3. #3
    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 existe is_int();

    le typage est précis et le moindre faux pas dans les types remontes des erreurs
    tu serais bien embeté alors parce que le retour d'un formulaire c'est toujours une chaine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre émérite Avatar de sebhm
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    1 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 090
    Par défaut
    tu serais bien embeté alors parce que le retour d'un formulaire c'est toujours une chaine.
    oui, mais j'imagine que c'est la meme chose pour du JAVA sur la toile non ?
    c'est lors de la récup de ta chaine que tu peux la tester (is_Int() , is_numeric(), ....) puis la caster
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    $foo = (int) $bar;
    doit marcher normalement

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    Tout d'abord merci pour vos réponse rapide,

    Pour le java, si on essaye de convertir une chaine en int et si celle-ci contient un seul caractère non numérique, une erreur est remonté, ce qui n'est pas du tout le cas en php...

    En fait le principe du (int) j'avais déjà éssayé et pour reprendre mon exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $toto = "1244544jjjj";
    $toto = (int) $toto;
     
    echo $toto
    affiche : "1244544"

    Ce qui ne m'arrange pas du tout .

    En fait je viens de trouver la fonction "is_numeric" qui a la différence de "is_int" vérifie si une chaine contient des caractère numérique.

    Je pense que ça devrait le faire avec !

  6. #6
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par shrek93 Voir le message

    En fait je viens de trouver la fonction "is_numeric" qui a la différence de "is_int" vérifie si une chaine contient des caractère numérique.

    Je pense que ça devrait le faire avec !
    Non, is_numeric vérifie si la chaine ne contient que des caractères numériques (voire le signe - et une décimale)

    voir ici

    Par conséquent un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $toto="123444lmp";
    if(is_numeric($toto) )
        {
       echo 'oui';
        }
        else
        {
        echo 'non';
        }
    renverra non;

Discussions similaires

  1. [DATE][CONVERSION] du type numerique au type date
    Par hamed dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 06/04/2005, 16h16
  2. Conversion de type
    Par sovitec dans le forum Langage
    Réponses: 5
    Dernier message: 15/12/2004, 14h29
  3. Conversion de type
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 10h30
  4. [MYSQL] conversion de type sur import de script
    Par sebos63 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/08/2003, 10h00
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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