Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 03h09   #1
Membre à l'essai
 
Inscription : août 2008
Messages : 267
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 267
Points : 20
Points : 20
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
ferhat.adel est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/05/2011, 08h25   #2
 
Homme Marc GUILLARD
Inscription : août 2007
Messages : 23
Détails du profil
Informations personnelles :
Nom : Homme Marc GUILLARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : août 2007
Messages : 23
Points : -1
Points : -1
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!
guillardmarc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 17h47   #3
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Biens de consommation

Informations forums :
Inscription : mai 2011
Messages : 7
Points : 5
Points : 5
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.
Spartacusply est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h41   #4
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
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 :
$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.
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/05/2011, 11h58   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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 :
1
2
3
$fmt = numfmt_create('fr_FR', NumberFormatter::SPELLOUT);
echo numfmt_format($fmt, 9567);
//neuf mille cinq cents soixante-sept
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/05/2011, 17h00   #6
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Autant pour moi ! merci de l'info
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 17h03   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
stealth35, un truc que je ne connaissais pas et qui pourra bien être utile un jour ça.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 20h55   #8
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
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
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 20h59   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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 :
neuf-mille-cinq-cent-soixante-sept
on remarquera les traits d'union en plus...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 22h45   #10
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
J'ai activé php_intl.dll (5.3.3.0) et fait quelques essais :
Code :
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 :
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 />';
 
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 23h11   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par Xysyo Voir le message
cela serai sympa stealth35 que tu testes avec ICU 4.6 :


Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h06.


 
 
 
 
Partenaires

Hébergement Web