Ces fonctions vous permettent de travailler avec des nombres de taille
arbitraire, en utilisant la bibliothèque GNU MP.
Ces fonctions ont été ajoutées en PHP 4.0.4.
Note :
La majorité des fonctions GMP acceptent des nombres GMP comme
arguments, définis ci-dessous comme resource.
Cependant, la plupart de ces fonctions acceptent aussi des nombres et des
chaînes à partir du moment où on peut les convertir
en nombre. Si une fonction utilisant les entiers est plus rapide, elle
sera automatiquement appelée si les arguments fournis sont des
entiers. Cela se fait de manière transparente : vous pouvez
donc utiliser des entiers avec les fonctions GMP sans perte de
vitesse. Voir aussi gmp_init().
| Avertissement |
Si vous voulez explicitement spécifier un entier de grande taille,
spécifiez-le sous forme de chaîne. Si vous ne le faites pas, PHP va
interpréter votre entier et le transformer en une représentation
interne, qui vous fera sûrement perdre de la précision, avant même
que GMP n'entre en jeu.
|
Note :
Cette extension est disponible sur les plates-formes Windows depuis PHP 5.1.0.
Vous pouvez télécharger GMP sur le site de
http://www.swox.com/gmp/. Ce site propose aussi un manuel
GMP.
Vous devez utiliser GMP 2 ou plus récent pour
utiliser ces fonctions. Certaines d'entre elles peuvent requérir
une version encore plus récente de GMP.
Pour pouvoir utiliser ces fonctions, vous devez compiler
PHP GMP en utilisant l'option
--with-gmp.
Cette extension ne définit aucune directive de
configuration.
Cette extension ne définit aucune ressource.
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution.
Exemple 1. Factorielle avec GMP
<?php function fact($x) { $return = 1; for ($i=2; $i < $x; $i++) { $return = gmp_mul($return, $i); } return $return; }
echo gmp_strval(fact(1000)) . "\n"; ?>
|
|
Cet exemple va calculer factorielle de 1000 (un
grand nombre) très vite.