intval() et ses arguments
<?php
echo intval('1AZ') .PHP_EOL; // 1
echo intval('1AZ', 11).PHP_EOL; // 21
echo intval('1AZ', 21).PHP_EOL; // 31
echo intval('1AZ', 36).PHP_EOL; // 1691
echo intval('1AZ', 37).PHP_EOL; // 0
echo intval( 123, 11).PHP_EOL; // 123
echo intval('123', 11).PHP_EOL; // 246
Que se passe-t-il ici ? Plusieurs choses à démêler, en fait.
La première ligne est un appel classique à intval(), qui tente de convertir une chaîne (ou presque n’importe quoi d’autre) en son équivalent décimal. Ici, la conversion s’arrête à A, car ce n’est pas un chiffre.
La deuxième ligne est un intval moins classique : le second argument est la base numérique pour la conversion. Ici, avec 11, cela signifie que le prochain chiffre est A ou a. Donc, le résultat est 10 + 1 * 11 = 21.
La troisième ligne élève la base numérique. Bien que A vaille toujours 10, le 1 vaut maintenant 21, donc le total est 10 + 1 * 21 = 31. Bien entendu, l’hexadécimal est pris en charge, avec la base 16.
On peut élever la base numérique jusqu’à la dernière lettre, Z : le second argument atteint au maximum 10 + 26 = 36. Là, la chaîne est convertie en 1691.
Au-delà de 36, il n’y a plus de lettres disponibles dans l’alphabet, donc PHP s’arrête silencieusement.
Enfin, notez que passer un entier à intval() renvoie la même valeur en résultat, quelle que soit la base numérique. En tant que chaîne, il est converti.
See Also
PHP Features
Last updated: 11 October 2026