Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

PHP 7 : Les nouveautés

Diviser avec Intdiv

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Les divisions d'entiers sont souvent complexes. Avec la nouvelle fonction Intdiv, vous n'aurez plus jamais aucun problème.
04:18

Transcription

On va parler un peu de divisions des integer. Pourquoi on aurait besoin de faire ça? En réalité, dans de nombreux cas en PHP, on a besoin de savoir combien de fois se répète une valeur dans un chiffre, notamment pour faire des itérations ou pour contrôler d'éventuelles sections qui vont découper notre code ou notre templating. Alors, très simplement, qu'est-ce que c'est une division et comment ça fonctionne en PHP ? Imaginons que je mette 5 dans une variable $int et que je lui demande simplement de faire $int/2 que va-t-il se passer ? Je ne vais pas obtenir un int, je vais obtenir une valeur flottante, il va faire tout bêtement une vraie division effectivement 5/2, ça fait bien 2,5. Historiquement en PHP, on connaît quelques petites méthodes qui permettent de faire ça. Notamment, on pourrait lui dire, de ce calcul, d'en faire un int. Donc on peut lui dire de nous faire ce calcul et de nous retourner qu'un int. Si je lance ça, effectivement ça va bien fonctionner. Ça marche bien parce qu'on a 5 en valeur. Si on avait une valeur beaucoup plus importante, on aurait des problèmes de précision. Les puristes diraient qu'on peut utiliser floor() et que c'est simple, que même si on a des valeurs flottantes, floor() va les arrondir, point barre. C'est pas mal aussi effectivement, c'est une bonne méthode, une bonne pensée, on pourrait se dire que ça résoudrait le problème. Il faut savoir qu'avec PHP 7, on a la possibilité d'utiliser intdiv() qui nous permet de faire une division sur un integer, qui prendra deux paramètres, d'abord la valeur que l'on veut diviser et ensuite par quoi. Ça va nous permettre d'avoir quelque chose d'extrêmement précis. Ça va nous faciliter la vie d'abord et puis surtout, ça va nous éviter les erreurs classiques de PHP. On voit ici que c'est quasiment chaque fois le même résultat. On va l'essayer avec un int beaucoup plus important. On en a un qui s'appelle PHP_INT_MAX. PHP_INT_MAX est la valeur d'integer maximum que PHP peut intercepter, donc la valeur maximale avec laquelle il peut travailler. On va voir que quand on va le diviser, il va y avoir des petites différences. Étudions ça dans un terminal propre et voyons comment intdiv() va nous aider dans la tâche de la division. On va regarder le premier résultat. Ça, c'est PHP_INT_MAX. Si je le fais moi-même, une division par 2 que j'exécute moi-même, je demande donc à PHP de faire le calcul, on voit ici que ici, la valeur retournée est une valeur qui va avoir, du coup, une notation mathématique, scientifique, c'est pas du tout ce que je veux. Donc ça marche pas, ça, on oublie. Ensuite, on regarde le fait de lui dire de faire un int. C'est pas trop mal en réalité et si on regarde PHP_INT_MAX, on se rend compte que ça finit par 7. Comment c'est possible, avec une division par 2, d'arriver à 4 ? Si c'était 8, pourquoi pas, mais là c'est 7, donc on devrait plutôt avoir 3 à la fin. Ça veut dire que là, on a une vraie erreur. Si on le fait avec floor(), c'est pareil que si on le faisait à la main, on va avoir une notation scientifique. Donc, ces trois cas-là de divisions sont mauvais. On ne doit jamais diviser un int soit avec une division classique, soit en essayant de caster un int, soit en essayant de faire un floor(), ça marchera pas, ce ne sont pas des méthodes intéressantes. La seule méthode intéressante aujourd'hui, en PHP 7 en tout cas, ce sera l'utilisation de la fonction intdiv() qui, elle, pourra vraiment faire une division, même sur des chiffres extrêmement longs, donc avec une précision accrue, et en plus de ça, ici on a bien le bon résultat parce que c'est exactement ce à quoi on s'attendait. intdiv() nous permettra de savoir combien de fois 2 va se répéter dans la chaîne que l'on passe juste avant. Pensez à utiliser ça quand vous aurez des divisions à faire, Sachez que, pour ceux qui penseraient que le modulo est plus intéressant, ben non, c'est pas le plus intéressant. On peut l'essayer sans aucun problème. Ici, on peut lui dire int%2 et on aura, de la même manière, sur le int%2, une valeur qui ne sera pas bonne non plus. Pensez bien à utiliser, non pas ces méthodes-là, mais bien la dernière méthode, intdiv(), qui va résoudre le problème.

PHP 7 : Les nouveautés

Profitez des nouveautés de PHP 7. Découvrez l’amélioration des performances globales, le nouvel opérateur de comparaison, le typage des paramètres scalaires, etc.

1h07 (24 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :19 mai 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !