Apprendre PHP (7/19) - Fonctions mathématiques

Dans cette leçon vidéo, l’instructeur présente les fonctions mathématiques et utilitaires les plus courantes de PHP à l’aide d’un formulaire HTML simple. Il montre comment récupérer la valeur d’un champ « x », appliquer différentes fonctions et afficher le résultat. Les fonctions abordées incluent : abs, ceil, floor, round, sqrt, pow, max/min, les fonctions trigonométriques (cos, sin, tan, etc.) et logarithmiques (log, log10, exp), les conversions de bases (decHex, hexDec, bindec, decbin), le formatage de nombres avec numberformat, ainsi que la génération de nombres aléatoires (mtrand, rand, mtgetrandmax, mtsrand). Pour chaque fonction, il donne un exemple d’entrée, décrit le résultat attendu et souligne des points d’attention (ex. : arrondi, précision, pseudo‑aléatoire, usage cryptographique). Il rappelle que la documentation officielle php.net recense l’ensemble des fonctions disponibles. La vidéo se conclut par un rappel sur l’importance de réinitialiser le générateur aléatoire et sur les limites de sécurité des fonctions pseudo‑aléatoires.
Chapters
Bonjour à tous et bienvenue dans cette nouvelle leçon de PHP. Aujourd'hui nous allons voir les fonctions mathématiques. En PHP, il existe une multitude de fonctions mathématiques et comme d'habitude on va se contenter des fonctions les plus utilisées et les plus sollicitées dans les projets web. Et si vous avez besoin de connaître d'autres fonctions, il suffit que vous vous rendiez sur le support officiel de PHP: php.net. Et là, vous serez impressionné par le nombre de fonctions qui sont mises à disposition par ce langage de programmation. Comme d'habitude, je vais me servir d'un formulaire HTML et j'ai déjà intégré un petit code PHP qui permet de récupérer les posts, à savoir la valeur du champ input dont le nom est x qui représentera le nombre que l'on va traiter et le bouton de soumission du formulaire. Et là, je vais afficher le résultat après le traitement. Et on va commencer par la première fonction qui est la fonction abs qui permet de retourner la valeur absolue d'un nombre. On mettra donc résultat égale à la fonction abs comme ça et entre les parenthèses on va mettre x. Donc maintenant j'exécute. Bon, si je mets par exemple une valeur négative, on va dire -6 et que je mets valider, donc ça me retourne 6. Alors abs, il permet de retourner la valeur absolue du nombre qui est passé en argument qui est dans ce cas $x. Il y a aussi la fonction ceil qui permet de retourner l'arrondi supérieur du nombre au cas où celui-ci contient une virgule. Par exemple, imaginez que j'ai mis 6.3. Quand je mets valider, ça me retourne 7. Bon, 7 étant le nombre entier immédiatement supérieur à 6.3. On n'oublie pas de représenter la virgule par un point. Il y a aussi floor qui permet de retourner l'arrondi inférieur ou bien la partie entière du nombre. Dans ce cas, si je mets par exemple toujours 6.3, alors ça me retourne 6 qui est le nombre entier immédiatement inférieur. Et si je prends la valeur 6, dans ce cas ça va retourner 6. Alors quand est-ce que la fonction floor permet de retourner l'arrondi inférieur? C'est uniquement quand le nombre passé en argument contient une virgule. Il y a aussi la fonction round qui peut accepter un deuxième argument. Dans ce cas on va mettre par exemple 2. Donc ça signifie que round va retourner l'arrondi le plus proche du nombre x en conservant 2 chiffres dans la partie fractionnaire. Voilà si je mets par exemple 6.333, dans ce cas ça me retourne 6,33 en conservant uniquement 2 chiffres après la virgule. Et si je mets par exemple 6 point trois trois sept. Dans ce cas, ça me retourne six virgule trente quatre. Bon, vous avez vu que ce nombre, donc il a été arrondi automatiquement puisque le troisième chiffre après la virgule est supérieur à cinq. Donc le dernier nombre à conserver qui est censé être le trois est transformé en quatre. Bon, ce qui représente l'arrondi le plus proche du nombre. Il y a aussi la fonction sqrt qui permet de retourner la racine carrée du x. Si je mets par exemple 4, dans ce cas ça me retourne 2. La fonction pow qui contient 2 arguments, à savoir le x qui est la base et l'exposant. On va mettre par exemple 3, dans ce cas ça permet de retourner x à la puissance 3. On mettra par exemple 2. Alors 2 à la puissance 3 est bel et bien égal à 8. Il y a aussi la fonction max. À laquelle on va passer une liste d'arguments, c'est-à-dire une liste de nombres, par exemple 1, 3, 5, 9, etc. Dans ce cas max va retourner le nombre le plus grand de la liste qui est dans ce cas 9. Quand je mets valider, ça m'affiche directement 9. Il y a aussi la fonction min qui permet de retourner la valeur la plus petite, dans ce cas c'est 1. Voilà. Il existe aussi des fonctions trigonométriques qui sont supportées en PHP comme le cosinus, le sinus, la tangente, l'arcsinus, etc. La syntaxe est simple, on va mettre par exemple cos et là vous spécifiez la valeur en radians. Par exemple si je mets 0, dans ce cas cos donc c'est égal à 1. Et voilà, donc ça me retourne 1. Bon, si je mets π, par exemple la valeur de π, donc il suffit d'exprimer grâce à une constante PHP qui s'appelle M_PI comme ça. Donc c'est une constante prédéfinie et donc le cosinus de π c'est égal à -1 et ça m'affiche -1. Même chose pour le sinus, etc. Et bien entendu il y a aussi donc la fonction log qui permet de calculer le logarithme naturel. Donc il y a aussi log10 qui permet de calculer le logarithme décimal. La fonction exp qui permet de calculer l'exponentielle, etc. Bref, il y a vraiment plein de fonctions mathématiques qui sont supportées en PHP et comme j'ai dit, pour découvrir toutes ces fonctions, il suffit que vous vous rendiez sur le support officiel php.net. Il existe aussi des fonctions de conversion qui permettent de passer d'une base à une autre. Par exemple, imaginez que vous avez un nombre décimal que vous voulez convertir en hexadécimal. On mettra donc decHex comme ça et comme valeur on va spécifier le nombre. Par exemple on va dire 255. Donc là c'est un nombre décimal que l'on veut convertir en hexa. Si j'exécute ça devrait donner FF. Voilà. Il y a aussi l'inverse à savoir hexDec. Dans ce cas on va spécifier la valeur hexadécimale et le PHP va calculer la représentation décimale de ce nombre-là. Par exemple si je mets FF dans ce cas, mais il faut passer ça en tant que chaîne de caractères. Dans ce cas ça va me retourner 255. Il y a aussi la fonction bindec qui permet de convertir un nombre binaire en un nombre décimal. Je mettrai par exemple 1111, dans ce cas je suis censé avoir la valeur 15. Voilà. Il y a aussi l'inverse dec_bin. Bon, si je mets toujours 255, alors je devrais avoir une série de 8 1. Et voilà. Il existe aussi une fonction PHP qui permet de représenter les nombres. En réalité, il ne s'agit pas vraiment d'une fonction mathématique, mais c'est une fonction qui permet de représenter les grands nombres et principalement les nombres qui contiennent une virgule. La fonction s'appelle number_format. Voilà, on va lui passer comme valeur x. NumberFormat accepte de 1 à 4 arguments. Donc moi je vais déclarer les 4 arguments d'un seul coup. Je mettrai par exemple ici 2, c'est-à-dire que le nombre x, s'il contient une virgule, je vais conserver le chiffre dans la partie fractionnaire. Le troisième symbole c'est la représentation de la virgule, je mettrai une virgule en tant que chaîne de caractères. Et le quatrième symbole c'est ce que l'on appelle le séparateur de milliers, je mettrai par exemple un espace. Alors dans ce cas, on va essayer de spécifier un nombre X dans le formulaire. Imaginez que j'ai mis la valeur par exemple 12345 comme ça. Quand je mets valider, vous avez bien vu que le nombre est bien formaté. En fait, ce genre de traitement est surtout approprié aux sites qui permettent d'afficher des prix comme des sites e-commerce, etc. Alors les prix seront mieux perçus par les internautes de cette manière. Donc maintenant, si je mets un chiffre beaucoup plus grand, avec quelques chiffres après la virgule. On voit que le nombre est formaté, il y a uniquement 2 chiffres qui sont conservés dans la partie fractionnaire du nombre. Si vous ne spécifiez pas ces 2 derniers paramètres, dans ce cas la représentation du nombre sera par défaut anglophone. Par exemple, je vais mettre 1234, etc. Donc le nombre est affiché de cette manière. Le séparateur de milliers dans ce cas c'est la virgule, et la virgule elle-même est représentée par le symbole point. Maintenant nous allons voir comment générer des nombres aléatoires en PHP. La fonction principale qui permet de générer des nombres aléatoires est la fonction mt_rand. Et entre les parenthèses on peut spécifier l'intervalle, c'est-à-dire les nombres souhaités. Je mettrai par exemple 1 et 4. Dans ce cas la fonction mt_rand permet de retourner soit le nombre 1, 2, 3 ou 4 et d'une manière aléatoire. Maintenant j'actualise pour voir le résultat. Donc ici c'est 3, voilà 4, etc. Donc ça change d'une manière aléatoire. Le mtek qui est ici signifie Mersenne Twister. Il s'agit en fait d'un générateur de nombres pseudo-aléatoires très connu et utilisé dans certains langages de programmation y compris le PHP. Autrement dit, on peut mettre juste la fonction rand comme ça. La fonction rand, ça marche aussi de la même manière. Le problème c'est que cette fonction est un peu lente, c'est-à-dire qu'il va générer des nombres mais pas aussi rapidement que le générateur mt. Il y a juste une remarque qu'il faut noter, c'est que selon le support officiel de PHP, cette fonction mt_rand ne permet pas de générer des nombres réellement aléatoires à 100%, mais des nombres pseudo-aléatoires. C'est-à-dire que si vous voulez vous servir de ces nombres dans un contexte de cryptographie ou bien de chiffrement, alors vaut mieux ne pas se servir de cette fonction et utiliser d'autres fonctions comme par exemple randint. Et bien sûr, vous pouvez voir plus de détails sur le site officiel de PHP, à savoir php.net. Mais pour le moment, sachez que cette fonction mtrand est utilisée dans la plupart des applications comme par exemple l'affichage des spots publicitaires aléatoires, la génération des CAPTCHAs, les jeux de hasard, voire même la génération de tokens de sécurité. Donc maintenant, si vous spécifiez pas les arguments entre les parenthèses, mtrand va nous retourner un nombre qui est compris par défaut entre 0 et un nombre connu par randommax. Regardons d'abord le résultat. Donc ça donne des nombres qui sont généralement grands, mais en réalité ce nombre il est censé être compris entre 0 et grand max qui vaut approximativement 2 milliards 147 millions. Grand max est le nombre maximal que ce générateur peut produire. Pour voir sa valeur il suffit d'exprimer la fonction mt_getGrandMax comme ça. Donc maintenant si j'exécute, bon ça me donne 2 milliards 147 millions et quelques. Bon je peux représenter ça avec la fonction NumberFormat. Je vais dire je veux pas de chiffres après la virgule parce que de toute façon c'est un nombre entier. Le symbole de la virgule aussi c'est pas très important, on peut mettre n'importe quoi. Et le séparateur de milliers, je mettrai un espace. Maintenant quand j'exécute, ça me donne ça. Donc c'est plus facile à lire maintenant, donc c'est 2 milliards 147 millions, etc. En réalité, ça donne la valeur maximale d'un nombre entier signé codé sur 32 bits. Autrement dit, cette valeur correspond à 2 à la puissance 31 moins 1. Alors, si vous voulez spécifier un intervalle entre les parenthèses de la fonction mtrand, il faut que la valeur maximale ne dépasse pas ce nombre. Généralement, si vous utilisez la fonction mtrand, comme ça, il est recommandé de toujours exécuter la fonction mtsrand. La fonction mtsrand permet de réinitialiser le générateur d'un nombre aléatoire. Dans ce cas, on va garantir la production de nombres aléatoires d'une manière impartiale. Cependant, même si vous déclarez pas cette fonction, le PHP il fait cette opération automatiquement. Ça veut dire qu'à chaque fois que vous appelez la fonction mthailand, le PHP s'assure de réinitialiser le générateur de nombres aléatoires d'une manière automatique. Alors ça sera tout pour cette séance. Merci pour votre attention et à la vidéo prochaine.
More from Yamossoun

Algorithme de calcule de la racine carrée par dichotomie #dichotomy #squareroot #algorithm









