web-dev-qa-db-fra.com

Bonne façon de convertir une chaîne en entier long dans PHP

J'ai essayé (int) "4209531264" Et intval("4209531264") mais malheureusement tout ce que j'obtiens est 2147483647 (Je me rends compte que c'est à cause de l'architecture 32 bits ou de certaines dépendances php ou quelque chose).

J'ai trouvé "4209531264" + 0 Qui renvoie le résultat correct mais il est surprenant de le voir fonctionner car il est au-delà de maxint.

mais la vraie question: est-ce la "bonne façon" de convertir une chaîne en long?

éditer:

(float) C'est-à-dire.

merci pour les commentaires! ouverture des yeux!

17
Maciej Jankowski

Tant que vous n'êtes pas très précis sur le type de valeur que vous obtenez, "number" + 0 est probablement le meilleur moyen de convertir votre entrée car elle se convertit au type de données numérique "naturel".

Le résultat sera un entier si l'entrée n'a pas de partie décimale et s'adapte (voir PHP_INT_MAX) ou un flotteur si ce n'est pas le cas.

15
Jon