Comprendre les fonctions mathématiques PHP
Guide des fonctions mathématiques PHP : arrondis, puissances, racines, min/max, trigonométrie, logarithmes, nombres aléatoires et constantes intégrées.
PHP est livré avec un grand ensemble de fonctions mathématiques intégrées qui vous permettent d'effectuer des calculs au-delà de ce que les opérateurs arithmétiques de base (+ - * / %) peuvent faire seuls. Avec elles, vous pouvez arrondir des valeurs à virgule flottante, calculer des racines carrées et des puissances, travailler avec la trigonométrie et les logarithmes, et générer des nombres aléatoires — le tout sans installer d'extension. Chaque fonction présentée ici fait partie du cœur de PHP.
Ce chapitre parcourt les fonctions que vous utiliserez le plus souvent, regroupées par ce qu'elles font, avec une courte note sur quand chacune est utile. Si vous débutez avec les valeurs numériques en PHP, lisez d'abord PHP Numbers.
Opérateurs vs. Fonctions
Pour l'arithmétique courante, utilisez des opérateurs — ils sont plus courts et plus rapides à lire :
<?php
echo 7 + 3; // 10
echo 7 % 3; // 1 (modulo: remainder)
echo 2 ** 10; // 1024 (exponentiation operator)
?>Recourez aux fonctions mathématiques lorsque vous avez besoin de quelque chose que les opérateurs ne peuvent pas exprimer seuls — arrondis, racines carrées, valeurs absolues, trigonométrie, logarithmes ou nombres aléatoires. L'opérateur ** et pow() font le même travail ; le reste de cette page couvre les cas sans équivalent en opérateur.
Fonctions d'arrondi
L'une des opérations mathématiques les plus courantes en PHP est l'arrondi de nombres à une décimale spécifique. La fonction round peut être utilisée pour arrondir un nombre à l'entier le plus proche ou à un nombre précis de décimales. Par exemple, le code suivant arrondira le nombre 3.14159 à deux décimales :
Exemple de la fonction round en PHP
En plus de la fonction round, PHP fournit également les fonctions ceil et floor, qui peuvent être utilisées pour arrondir un nombre vers le haut ou vers le bas à l'entier le plus proche. Par exemple :
Exemples des fonctions ceil et floor en PHP
Quand utiliser laquelle : round() arrondit à la valeur la plus proche (et accepte une précision), ceil() arrondit toujours vers le haut, et floor() arrondit toujours vers le bas. Notez que ceil() et floor() retournent un float, donc ceil(3.1) vaut 4.0, et non l'entier 4. Un piège courant est que round() utilise par défaut l'arrondi "à mi-chemin loin de zéro", donc round(2.5) vaut 3 et round(-2.5) vaut -3.
Puissances et racines
Utilisez pow() (ou l'opérateur **) pour élever un nombre à une puissance, et sqrt() pour calculer une racine carrée. abs() retourne la valeur absolue (non négative), ce qui est pratique lorsque vous vous intéressez uniquement à l'amplitude — par exemple, la distance entre deux nombres.
Exemple PHP pow, sqrt et abs
<?php
echo pow(2, 8) . "\n"; // 256
echo 2 ** 8 . "\n"; // 256 (operator form)
echo sqrt(144) . "\n"; // 12
echo abs(-17) . "\n"; // 17
// Distance between two numbers, regardless of order:
echo abs(3 - 10) . "\n"; // 7
?>Min, Max et sommes
min() et max() retournent respectivement la plus petite et la plus grande valeur parmi leurs arguments. Vous pouvez leur passer une liste de valeurs ou un seul tableau. array_sum() et array_product() additionnent ou multiplient tous les éléments d'un tableau.
Exemple PHP min, max et array_sum
<?php
echo min(4, 2, 9, 1) . "\n"; // 1
echo max([4, 2, 9, 1]) . "\n"; // 9 (works on an array too)
$prices = [19.99, 5.50, 12.00];
echo array_sum($prices) . "\n"; // 37.49
echo array_product([2, 3, 4]) . "\n"; // 24
?>Fonctions trigonométriques
PHP fournit plusieurs fonctions trigonométriques, notamment sin, cos et tan, qui peuvent être utilisées pour calculer respectivement le sinus, le cosinus et la tangente d'un angle. Ces fonctions peuvent être utiles pour effectuer des calculs liés aux angles et aux distances dans l'espace 2D et 3D. Notez que ces fonctions attendent des angles en radians, et non en degrés. Utilisez deg2rad() pour convertir des degrés en radians avant de les passer à ces fonctions.
Exemple PHP sin, cos et tan
<?php
$angle = deg2rad(30);
$sine = sin($angle);
echo $sine . "\n";
// Output: 0.5
$cosine = cos($angle);
echo $cosine . "\n";
// Output: 0.866025
$tangent = tan($angle);
echo $tangent . "\n";
// Output: 0.577350
?>Fonctions logarithmiques
PHP fournit plusieurs fonctions logarithmiques, notamment log, log10 et exp, qui peuvent être utilisées pour effectuer diverses opérations logarithmiques. La fonction log calcule le logarithme naturel d'un nombre, tandis que la fonction log10 calcule le logarithme en base 10 d'un nombre. La fonction exp calcule la valeur exponentielle d'un nombre.
Exemple des fonctions PHP log, log10 et exp
<?php
$num = 10;
$natural_log = log($num);
echo $natural_log . "\n";
// Output: 2.30259
$log10 = log10($num);
echo $log10 . "\n";
// Output: 1
$exponential = exp($num);
echo $exponential . "\n";
// Output: 22026.465
?>Fonctions diverses
En plus des fonctions évoquées ci-dessus, PHP fournit plusieurs autres fonctions mathématiques utilisables à diverses fins. Par exemple, la fonction abs peut être utilisée pour calculer la valeur absolue d'un nombre, tandis que la fonction pow peut être utilisée pour calculer la puissance d'un nombre.
Exemple des fonctions PHP abs et pow
Pour la division entière uniquement, utilisez intdiv(), et pour le reste en virgule flottante, utilisez fmod() :
<?php
echo intdiv(17, 5) . "\n"; // 3 (integer division)
echo fmod(17.5, 5) . "\n"; // 2.5 (float remainder; % only works on ints)
?>Nombres aléatoires
Pour générer des nombres aléatoires, utilisez rand() ou mt_rand() à des fins générales, et random_int() lorsque la valeur doit être cryptographiquement sûre (mots de passe, jetons, codes OTP). Les trois acceptent un minimum et un maximum inclus.
Exemple de nombre aléatoire en PHP
<?php
$dice = rand(1, 6); // a number from 1 to 6
echo $dice . "\n";
$secure = random_int(1, 100); // cryptographically secure 1–100
echo $secure . "\n";
?>Comme la sortie change à chaque exécution, les nombres exacts ci-dessus diffèreront à chaque fois. Utilisez random_int() chaque fois que le caractère aléatoire est sensible du point de vue de la sécurité — rand() est prévisible et ne doit pas être utilisé pour quoi que ce soit de secret.
Constantes mathématiques
PHP définit plusieurs constantes intégrées pour des valeurs courantes, afin que vous n'ayez pas à coder en dur des approximations :
<?php
echo M_PI . "\n"; // 3.1415926535898 (π)
echo M_E . "\n"; // 2.718281828459 (Euler's number)
echo M_SQRT2 . "\n";// 1.4142135623731 (√2)
// Area of a circle with radius 5:
echo M_PI * pow(5, 2) . "\n"; // 78.539816339745
?>La constante PHP_INT_MAX vous indique le plus grand entier que votre plateforme peut contenir ; dépassez-le et PHP convertit silencieusement le résultat en float. Consultez PHP Numbers et PHP Data Types pour en savoir plus sur les limites des entiers et des floats.
Conclusion
La boîte à outils mathématique de PHP couvre tout, des arrondis simples à la trigonométrie, aux logarithmes et aux nombres aléatoires sécurisés — le tout intégré au langage sans extension requise. En règle générale : utilisez les opérateurs pour l'arithmétique simple, round/ceil/floor pour contrôler la précision, min/max/array_sum pour résumer des collections, et random_int() chaque fois que le caractère aléatoire doit être imprévisible. Pour séparer le formatage des nombres à des fins d'affichage de leur calcul, consultez number_format.