English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP Avancé

PHP & MySQL

PHP Manuel de référence

PHP Mathematical Operators

Dans ce tutoriel, vous apprendrez à effectuer des opérations mathématiques en PHP.

Effectuer des opérations mathématiques

PHP dispose de multiples fonctions intégrées qui peuvent vous aider à effectuer toutes les opérations, des simples additions et soustractions aux calculs avancés. Vous avez déjà vuOpérateurs PHPDans ce chapitre, nous avons appris comment effectuer des opérations mathématiques de base. Voici un autre exemple :

<?php
echo 7 + 3; // Sortie : 10
echo '<br>';
echo 7 - 2; // Sortie : 5
echo '<br>';
echo 7 * 2; // Sortie : 14
echo '<br>';
echo 7 / 2; // Sortie : 3.5
echo '<br>';
echo 7 % 2; // Sortie : 1
?>
Voyons un test‹/›

Chaque opérations mathématiques a une priorité spécifique ; généralement, la multiplication et la division sont exécutées avant l'addition et la soustraction. Cependant, les parenthèses peuvent changer cette priorité. Quelle que soit la priorité des opérations, il faut toujours évaluer d'abord l'expression entre les parenthèses, comme dans les exemples suivants :

<?php
echo 5 + 4 * 10;         // Sortie : 45
echo '<br>';
echo (5 + 4) * 10;       // Sortie : 90
echo '<br>';
echo 5 + 4 * 10 / 2;     // Sortie : 25
echo '<br>';
echo 8 * 10 / 4 - 2;     // Sortie : 18
echo '<br>';
echo 8 * 10 / (4 - 2);   // Sortie : 40
echo '<br>';
echo 8 + 10 / 4 - 2;     // Sortie : 8.5
echo '<br>';
echo (8 + 10) / (4 - 2); // Sortie : 9
?>
Voyons un test‹/›

Dans la partie suivante, nous allons apprendre quelques fonctions intégrées PHP, qui sont les plus couramment utilisées pour effectuer des opérations mathématiques.

Trouver l'absolu du nombre

Vous pouvez utiliser la fonction abs() pour trouverentierouNombre en virgule flottantede l'absolu, comme dans les exemples suivants :

<?php
echo abs(5) . "<br>";    // Sortie : 5 (integer)
echo abs(-5) . "<br>";   // Sortie : 5 (integer)
echo abs(4.2) . "<br>";  // Sortie : 4.2 (double/float)
echo abs(-4.2) . "<br>"; // Sortie : 4.2 (double/float)
?>
Voyons un test‹/›

Comme vous le voyez, si le nombre est négatif, la valeur renvoyée est positive. Mais si le nombre est positif, cette fonction ne renvoie que le nombre.

Round up or down the decimal value

La fonction ceil() peut être utilisée pour arrondir une décimale à l'entier supérieur, tandis que la fonction floor() peut être utilisée pour arrondir une décimale à l'entier inférieur, comme dans les exemples suivants :

<?php
//Rounding up the fraction
echo ceil(4.2) . "<br>";    // Sortie : 5
echo ceil(9.99) . "<br>";   // Sortie : 10
echo ceil(-5.18) . "<br>";  // Sortie : -5
 
//Rounding down the fraction
echo floor(4.2) . "<br>";    // Sortie : 4
echo floor(9.99) . "<br>";   // Sortie : 9
echo floor(-5.18) . "<br>";  // Sortie : -6
?>
Voyons un test‹/›

Trouver la racine carrée d'un nombre

Vous pouvez utiliser la fonction sqrt() pour trouver la racine carrée d'un nombre positif. Si le nombre est négatif, il renvoie NaN. Voici un exemple :

<?php
echo sqrt(9) . "<br>";   // Sortie : 3
echo sqrt(25) . "<br>";  // Sortie : 5
echo sqrt(10) . "<br>";  // Sortie : 3.1622776601684
echo sqrt(-16) . "<br>"; // sortie : NAN
?>
Voyons un test‹/›

Générer des nombres aléatoires

La fonction rand() peut être utilisée pour générer des nombres aléatoires. Vous pouvez choisir de spécifier une gamme en passant les paramètres min, max, comme dans les exemples suivants :

<?php
//Générer quelques nombres aléatoires
echo rand() . "<br>";
echo rand() . "<br>";
 
//Générer quelques nombres entre1à10) entre1et10)
echo rand(1, 10) . "<br>";
echo rand(1, 10) . "<br>";
?>
Voyons un test‹/›

Si la fonction rand() est appelée sans les paramètres optionnels min, max, alors elle renverra un nombre pseudo-aléatoire entre 0 et getrandmax(). La fonction getrandmax() affiche la valeur maximale aléatoire, sur la plate-forme Windows, elle n'est que32767Ainsi, si vous avez besoin d'un nombre supérieur à32767de la gamme, vous pouvez simplement spécifier les paramètres min et max.

Conversion réciproque de nombres décimaux et binaires

La fonction decbin() est utilisée pour convertir un nombre décimal en nombre binaire. Tandis que la fonction bindec() convertit un nombre binnaire en nombre décimal.

<?php
//Convertir décimal en binaire
echo decbin(2) . "<br>";    // Sortie : 10  
echo decbin(12) . "<br>";   // Sortie : 1100  
echo decbin(100) . "<br>";  // Sortie : 1100100
 
//Convertir binaire en décimal
echo bindec(10) . "<br>";       // Sortie : 2 
echo bindec(1100) . "<br>";     // Sortie : 12  
echo bindec(1100100);  // Sortie : 100
?>
Voyons un test‹/›

Conversion réciproque de nombres décimaux et hexadécimaux

La fonction dechex() est utilisée pour convertir un nombre décimal en représentation hexadécimale. Tandis que la fonction hexdec() est utilisée pour convertir une chaîne hexadécimale en nombre décimal.

<?php
//Convertir décimal en hexadécimal
echo dechex(255) . "<br>";  // sortie : ff
echo dechex(196) . "<br>";  // Sortie : c4
echo dechex(0) . "<br>";    // Sortie : 0
 
//Convertir hexadécimal en décimal
echo hexdec('ff') . "<br>";  // Sortie : 255
echo hexdec('c4') . "<br>";  // Sortie : 196
echo hexdec(0);     // Sortie : 0
?>
Voyons un test‹/›

de décimal à octal

La fonction decoct() est utilisée pour convertir un nombre décimal en forme octale. La fonction octdec() est utilisée pour convertir un nombre octal en nombre décimal. La conversion décimale et octale est

<?php
//Convertir décimal en octal 
echo decoct(12) . "<br>";   // Sortie : 14
echo decoct(256) . "<br>";  // Sortie : 400
echo decoct(77) . "<br>";   // Sortie : 115
 
//Convertir octal en décimal
echo octdec('14') . "<br>";   // Sortie : 12
echo octdec('400') . "<br>";  // Sortie : 256
echo octdec('115);  // Sortie : 77
?>
Voyons un test‹/›

Convertir un nombre d'un système de base à un autre

La fonction base_convert() peut être utilisée pour convertir un nombre d'un système de base à un autre. Par exemple, vous pouvez convertir un décimal (Base10)en binaire (Base2),hexadécimal (Base16)en octal (Base8))。 Convertir octal en hexadécimal, hexadécimal en décimal, et ainsi de suite.

Cette fonction accepte trois paramètres : le nombre à convertir, la base actuelle et la base à convertir. La syntaxe de base est la suivante :

base_convert(number,frombase,tobase);

frombase et tobase doivent être dans2à36entre (y compris2et36)。 La base supérieure à10le nombre sera représenté par le lettre a-z représente, où a représente10b représente11z représente35Voici un exemple simple illustrant le fonctionnement de cette fonction :

<?php
//Convertir décimal en binaire
echo base_convert('12', 10, 2) . "<br>";  // Sortie : 1100
//Convertir binaire en décimal
echo base_convert('1100', 2, 10) . "<br>";  // Sortie : 12
 
//Convertir décimal en hexadécimal
echo base_convert('10889592', 10, 16) . "<br>";  // Sortie : a62978
//Convertir hexadécimal en décimal
echo base_convert('a62978', 16, 10) . "<br>";  // Sortie : 10889592
 
//Convertir décimal en octal
echo base_convert('82', 10, 8) . "<br>";  // Sortie : 122
//Convertir octal en décimal
echo base_convert('122', 8, 10) . "<br>";  // Sortie : 82
 
//Convertir hexadécimal en octal
echo base_convert('c2c6a8', 16, 8) . "<br>";  // Sortie : 60543250
//Convertir octal en hexadécimal
echo base_convert('60543250', 8, 16) . "<br>";  // Sortie : c2c6a8
 
//Convertir octal en binaire
echo base_convert('42', 8, 2) . "<br>";  // Sortie : 100010
//Convertir binaire en octal
echo base_convert('100010', 2, 8) . "<br>";  // Sortie : 42
 
//Convertir hexadécimal en binaire
echo base_convert('abc', 16, 2) . "<br>";  // Sortie : 101010111100
//Convertir binaire en hexadécimal
echo base_convert('101010111100', 2, 16);  // Sortie : abc
?>
Voyons un test‹/›

Attention :La fonction base_convert() retourne toujours une valeur en chaîne de caractères. Si la valeur retournée commence par10Si la chaîne de caractères obtenue est utilisée comme une chaîne de caractères numérique dans les calculs, PHP la convertira en nombre lors de l'exécution du calcul.