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 :

comment php peut gérez les types


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 384
    Points : 0
    Points
    0
    Par défaut comment php peut gérez les types
    bonsoir je travaille avec les entiers mais quand je mets strlen(1) il m'a retourné
    1 je pensais qu'il allait convertir 1 en une chaîne de caractère

    je voudrais savoir comment php gère les types de variables
    merci

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 24
    Points : 4
    Points
    4
    Par défaut
    PHP gère les types dynamiquement en fonction des actions que tu fais sur les variables.
    Donc en utilisant strlen() sur un entier il converti l'entier en chaîne de caractère => le caractère '1'
    Donc strlen(1) = 1 est on ne peux plus correct.

    Oui! Mais le décryptage s'effectue dans le même script! Je vais essayer en fessant un copier-coller puis décrypter!

    Je viens d'essayer et sa marche pas!

  3. #3
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    strlen calcule la taille d'une chaine de caractère.

    Si un entier est passé en paramètre, il convertit cet entier en une chaîne de caractère. Je vois pas du tout en quoi strlen(1) = 1 te choque.

    strlen(9567) = 4 par exemple.

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    PHP gère les types de variables de manière (très) souple; c'est la manière dont on les utilise qui va lui indiquer de quel type il s'agit.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bool=true; // peut avoir pour valeur 1 selon l'utilisation
    Jusque là c'est plutôt facile.
    Sinon, tu peux déclarer et définir tes variables au préalable(bonne pratique ):Enfin, si tu souhaitais convertir '1' en 'un' là il faudra te créer une méthode spécifique.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tigunn Voir le message
    Enfin, si tu souhaitais convertir '1' en 'un' là il faudra te créer une méthode spécifique.
    PHP gère déjà ça grâce a Intl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fmt = numfmt_create('fr_FR', NumberFormatter::SPELLOUT);
    echo numfmt_format($fmt, 9567);
    //neuf mille cinq cents soixante-sept

  6. #6
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Autant pour moi ! merci de l'info

  7. #7
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    stealth35, un truc que je ne connaissais pas et qui pourra bien être utile un jour ça.

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    //neuf mille cinq cents soixante-sept[/code]
    Salut stealth35,

    Je n'ai jamais utilisé cette librairie mais si l'exemple que tu donnes provient de ICU il y une faute orthographique : cent ne prend un s que quand il est en dernière position. 9567 = neuf mille cinq cents soixante-sept

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Xysyo Voir le message
    Salut stealth35,

    Je n'ai jamais utilisé cette librairie mais si l'exemple que tu donnes provient de ICU il y une faute orthographique : cent ne prend un s que quand il est en dernière position. 9567 = neuf mille cinq cents soixante-sept
    ça dépend des version d'ICU, la j'etais sous win donc avec la version 3.8
    chez moi sous OSX avec la version 4.6 j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    neuf-mille-cinq-cent-soixante-sept
    on remarquera les traits d'union en plus...

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    J'ai activé php_intl.dll (5.3.3.0) et fait quelques essais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    180 : cent quatre-vingts OK
    190 : cent quatre-vingt-dix OK
    197 : cent quatre-vingt-dix-sept OK
    500 : cinq cents OK
    980 : neuf cents quatre-vingts ERR
    981 : neuf cents quatre-vingt-un ERR
    1142 : onze cents quarante-deux ERR
    6957 : six mille neuf cents cinquante-sept ERR
    2000000 : deux million ERR
    2000000000 : deux milliard ERR
    0 : zéro OK
    1 : un OK
    1.3 : un virgule trois OK
    1.37 : un virgule trois sept ERR
    Conclusion : A utiliser avec parcimonie

    cela serai sympa stealth35 que tu testes avec ICU 4.6 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
     
    $fmt = NumberFormatter::create('fr', NumberFormatter::SPELLOUT);
    echo '<pre>';
    echo 180 , ' : ', $fmt->format(180) , '<br />';
    echo 190 , ' : ', $fmt->format(190) , '<br />';
    echo 197 , ' : ', $fmt->format(197) , '<br />';
    echo 500 , ' : ', $fmt->format(500) , '<br />';
    echo 980 , ' : ', $fmt->format(980) , '<br />';
    echo 981 , ' : ', $fmt->format(981) , '<br />';
    echo 1142, ' : ', $fmt->format(1142), '<br />';
    echo 6957, ' : ', $fmt->format(6957), '<br />';
    echo 2000000, ' : ', $fmt->format(2000000), '<br />';
    echo 2000000000, ' : ', $fmt->format(2000000000), '<br />';
    echo '<br >';
    echo 0.00, ' : ', $fmt->format(0.00), '<br />';
    echo 1.00, ' : ', $fmt->format(1.00), '<br />';
    echo 1.30, ' : ', $fmt->format(1.30), '<br />';
    echo 1.37, ' : ', $fmt->format(1.37), '<br />';
     
    ?>

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par Xysyo Voir le message
    cela serai sympa stealth35 que tu testes avec ICU 4.6 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    180 : cent-quatre-vingts
    190 : cent-quatre-vingt-dix
    197 : cent-quatre-vingt-dix-sept
    500 : cinq-cents
    980 : neuf-cent-quatre-vingts
    981 : neuf-cent-quatre-vingt-un
    1142 : mille-cent-quarante-deux
    6957 : six-mille-neuf-cent-cinquante-sept
    2000000 : deux millions
    2000000000 : deux milliards
     
    0 : zéro
    1 : un
    1.3 : un virgule trois
    1.37 : un virgule trois sept

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/04/2013, 19h00
  2. comment on peut regarder les codes de qt?
    Par lansher1985 dans le forum Qt
    Réponses: 3
    Dernier message: 11/08/2009, 18h18
  3. comment je peut savoir le type d'une donnée
    Par eng_dev dans le forum C++
    Réponses: 2
    Dernier message: 09/06/2007, 12h16
  4. [VB.NET] Comment implementer les "Type" de VB6 ?
    Par cach dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/02/2006, 11h48
  5. Réponses: 15
    Dernier message: 20/12/2005, 16h35

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