PHP (PHP Hypertext Preprocessor)

Auteur: Mohamed CHINY Durée necessaire pour le cours de PHP (PHP Hypertext Preprocessor) Niveau recommandé pour le cours de PHP (PHP Hypertext Preprocessor) Supports vidéo non disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz disponible pour ce cours

Page 7: Fonctions mathématiques

Toutes les pages

Les fonctions mathématiques en PHP

Comme le reste des langages de programmation, PHP dispose d'une série de fonctions prédéfinies qui exécutent des opérations mathématiques.

Fonctions mathématiques standards

  • abs($x): retourne la valeur absolue de $x.
  • ceil($x): retourne l'arrondi supérieur de $x. Il s'agit du nombre entier immédiatement supérieur ou égal $ x.
  • floor($x): retourne l'arrondi inférieur de $x. Il s'agit du nombre entier immédiatement inférieur ou égal $ x.
  • round($x,$i): retourne l'arrondi le plus proche de $x avec la précision $i. Le nombre retourné aura $i chiffres après la virgule.
  • pow($x,$y): retourne $x à la puissance $y.
  • max($a,$b,$c,...): retourne le nombre le plus grand parmi $a, $b, $c...
  • min($a,$b,$c,...): retourne le nombre le plus petit parmi $a, $b, $c...
  • log($x): retourne le logarithme naturel (népérien) de $x.
  • log10($x): retourne le logarithme en base 10 de $x.
  • exp($x): retourne l'exponentiel de $x.
  • sqrt($x): retourne la racine carré de $x.
  • hexdec($x): converti $x de la base hexadécimale à la base décimale.
  • dechex($x): converti $x de la base décimale à la base hexadécimale.
  • bindec($x): converti $x de la base binaire à la base décimale.
  • decbin($x): converti $x de la base décimale à la base binaire.

Exemple:
<?php
   $x=-1.6;
   echo abs($x); // Affiche 1.6;
   echo ceil($x); // Affiche -1;
   $nbr=A2F5;
   echo hexdec($nbr); // Affiche 41717;
?>

Fonctions trigonométriques

  • pi(): retourne la valeur approximative de PI (3,14159265359).
  • sin($x): retourne le sinus de $x.
  • cos($x): retourne le cosinus de $x.
  • tan($x): retourne la tangente de $x.
  • asin($x): retourne l'arc sinus de $x.
  • acos($x): retourne l'arc cosinus de $x.
  • atan($x): retourne l'arc tangente de $x.

Notez qu'il existe des constantes prédéfinies en PHP comme M_PI qui retourne la valeur de PI (3,14159265359)et M_E qui retourne la valeur du nombre d'Euler (2.71828182846).

Nombres aléatoires

En PHP (comme en d'autres langages de programmation) il est parfois utile de pouvoir générer des nombres aléatoires pour certaines applications. Par exemple, pour développer un jeu de chance comme la loterie en ligne, l'affichage de contenu publicitaire d'une manière aléatoire, la génération de mot de passe en cas d'oubli de celui-ci par le client ou la génération des CAPTCHA...
Le terme CAPTCHA désigne "Completely Automated Public Turing test to tell Computers and Humans Apart". Sur une page Web qui contient des formulaires, il est parfois utile de savoir si c'est un humain qui le manipule ou un robot (logiciel automatisé qui remplit et poste le formulaire au serveur). Pour faire la distinction entre les deux, on affiche généralement une suite de caractères déformés (ou peu flous) qu'on demande au client de reproduire, ou on propose une opération arithmétique simple (addition ou soustraction) et on lui demande de saisir le résultat escompté... Généralement, les robots ne parviennent pas à outrepasser le CAPTCHA.
Les fonctions qui traitent les nombres aléatoires sont:
  • mt_rand(): La fonction mt_rand() permet de générer un nombre aléatoire entier compris entre 0 et RANDMAX (qui représente la valeur maximale pouvant être générée). Si on désigne des paramètres entre les parenthèses, par exemple mt_rand(1,4), alors l'un des nombre 1, 2, 3 ou 4 sera généré aléatoirement.
  • mt_srand(): Cette fonction permet d'initialiser le moteur de génération des nombres aléatoires. Il est conseillé de toujours faire suivre mt_rand() par mt_srand() pour garantir un meilleur résultat aléatoire la prochaine fois.
  • mt_getrandmax(): Cette fonction permet de retourner le RANDMAX qui représente la valeur maximale que le moteur de génération des nombres aléatoires peut générer. Sa valeur vaut 2147483647. Si la fonction mt_rand() est déclarée sans paramètres, alors elle peut générer un nombre compris entre 0 et RANDMAX.

Exemple:
<?php
   for($i=1;$i<=8;$i++){
      $nbr=mt_rand();
      echo "$i - <b>$nbr</b><br>";
      mt_srand();
   }
?>
Quand j'ai exécuté le code chez moi, cela a donné:
1 - 337518718
2 - 1863857086
3 - 1582335841
4 - 1253525569
5 - 1332647592
6 - 1891861769
7 - 232857778
8 - 1548570121

Formatage des nombres

Souvent, quand on veut afficher de grands nombres on fait en sorte de placer un séparateur de milliers afin que sa lecture soit facile. C'est généralement le cas sur les sites E-commerce qui proposent en vente des articles de valeur élevée comme l'immobilier ou les voitures.

En PHP il existe une fonction qui permet de faciliter le formatage des nombres, il s'agit de number_format(). Sa syntaxe complète ressemble à ceci:

number_format($nbr,$dec,$vir,$sep)
  • $nbr désigne le nombre à formater.
  • $dec précise le nombre de chiffres à conserver après la virgule.
  • $vir désigne le symbole qui fait office de la virgule.
  • $sep désigne le symbole qui fait office de séparateur de milliers.

Exemple:
<?php
   $nbr=123456789.0123;
   echo number_format($nbr,2,","," ");
?>
ce qui donne:
123 456 789,01