W3docs

pow()

Découvrez la fonction pow() en PHP, utilisée pour élever un nombre à une puissance donnée, avec sa syntaxe et ses cas particuliers.

La fonction pow() élève un nombre à une puissance — c'est-à-dire qu'elle calcule base multiplié par lui-même exponent fois. Cette page couvre sa syntaxe, le type de valeur qu'elle retourne, en quoi elle diffère de l'opérateur **, ainsi que les cas particuliers (exposants négatifs, fractionnaires et zéro) qui peuvent surprendre.

Syntaxe

pow(int|float $base, int|float $exponent): int|float|object
  • $base — le nombre à élever.
  • $exponent — la puissance à laquelle élever la base.

La fonction retourne $base élevé à la puissance $exponent. Le type du résultat dépend des entrées : si les deux arguments sont des entiers non négatifs et que le résultat tient dans un entier, un int est retourné ; sinon, un float est retourné.

Exemple de base

php— editable, runs on the server

Ici, nous élevons 2 à la puissance 3, stockons le résultat et l'affichons. Comme les deux arguments sont des entiers non négatifs, pow() retourne l'entier 8.

pow() vs. l'opérateur **

Depuis PHP 5.6, l'opérateur d'exponentiation ** fait exactement la même chose que pow() et est généralement préféré car il se lit plus naturellement :

<?php
echo pow(2, 10);  // 1024
echo "\n";
echo 2 ** 10;     // 1024
?>

Les deux produisent 1024. L'opérateur ** est associatif à droite, donc 2 ** 3 ** 2 est évalué comme 2 ** (3 ** 2), ce qui donne 512 — et non 64. Voir les opérateurs PHP pour en savoir plus sur la précédence des opérateurs.

Exposants négatifs, fractionnaires et zéro

pow() n'est pas limitée aux exposants entiers positifs.

<?php
echo pow(2, -2);   // 0.25  -> 1 / (2 * 2)
echo "\n";
echo pow(16, 0.5); // 4     -> the square root of 16
echo "\n";
echo pow(5, 0);    // 1     -> any number to the power 0 is 1
echo "\n";
echo pow(-2, 3);   // -8    -> a negative base with an integer exponent
?>

Comportements clés :

  • Un exposant négatif retourne l'inverse, donc le résultat est un float.
  • Un exposant fractionnaire calcule une racine : élever à 0.5 correspond à la racine carrée, 1/3 à la racine cubique. Pour les racines carrées en particulier, sqrt() est plus explicite.
  • Toute base élevée à la puissance 0 vaut 1.
  • Une base négative élevée à un exposant non entier n'a pas de résultat réel ; pow() retourne NAN (Not A Number) dans ce cas.

Pièges courants

  • Les grands résultats débordent vers float. pow(2, 63) dépasse PHP_INT_MAX sur un système 64 bits, donc le résultat devient silencieusement un float et perd en précision. Utilisez-le en sachant que le type du résultat peut changer.
  • NAN pour les racines impossibles. pow(-8, 1/3) retourne NAN plutôt que -2, car PHP l'évalue comme une puissance dans les réels.
  • Les chaînes sont converties. pow("2", "3") fonctionne et retourne 8, mais se fier à la conversion implicite des chaînes est fragile — passez des nombres.

Fonctions associées

  • sqrt() — racine carrée, équivalente à pow($n, 0.5).
  • abs() — valeur absolue, utile avant de calculer une puissance fractionnaire d'un nombre potentiellement négatif.
  • intdiv() — division entière.
  • Les fonctions mathématiques PHP — aperçu de la boîte à outils numérique de PHP.

Conclusion

pow() (ou l'opérateur équivalent **) élève un nombre à une puissance et est un outil incontournable dans tout code PHP mathématique. N'oubliez pas que le type de retour peut passer de int à float selon les arguments, que les bases négatives avec des exposants fractionnaires donnent NAN, et que les très grands résultats débordent vers des floats.

Pratique

Pratique
Quelle est la fonctionnalité de la fonction 'pow' en PHP ?
Quelle est la fonctionnalité de la fonction 'pow' en PHP ?
Was this page helpful?