Le développement de PHP suit son court et il a été décidé en 2014 qu’il sauterait une version pour passer de la version 5.x à la version 7. Le processus de développement est relativement long. Si vous n’en avez pas encore entendu parlé, il est temps de rattraper votre retard.
Sortie de PHP 7
La finalisation et l’implémentation des dernières fonctionnalités vont se faire entre Mars et Juin 2015. Une première version RC (Release Candidate) sera publiée courant Juin / Juillet 2015. Vous pourrez finalement enfin profiter de cette nouvelle version à partir d’Octobre, voire Novembre 2015.
Amélioration des performances
PHP 7 sera basé sur PHPNG (PHP Next-Gen) qui a été initialement développé par Zend pour améliorer son framework.
Le gain de performance est énorme. Il va de 25% à 70% selon les applications que vous utilisez. Ce gain se fait sans modifier une seule ligne de code. Il suffira de mettre à jour la version PHP de votre serveur pour en bénéficier.
Voici un exemple en nombre de requêtes par seconde pour la nouvelle version sera capable d’avaler face à son prédécesseur :
Les performances sont en constante évolution. Quand PHPNG a été publié pour la première fois, il fallait environ 9.4 milliards d’instructions CPU pour afficher la page d’accueil de WordPress. Actuellement, il n’en faut déjà plus que 2.6 milliards. C’est 72% de moins.
Nouveautés de PHP 7
Nouvel opérateur <=>
PHP 7 introduit un nouvel opérateur : expr <=> expr
Il retourne 0 si les 2 expressions sont égales, 1 si l’expression de gauche est plus grande et -1 si l’expression de droite est plus grande.
Voici quelques exemples :
Il peut notamment être utilisé pour classer une liste d’éléments.
Déclaration des fonctions
Il sera possible de définir le type de valeur que doit retourner la fonction.
Sémantique des entiers
Selon les plateformes qui exécutent PHP, les valeurs de certains entiers sont différents. L’idée est ici d’uniformiser les valeurs de ces entiers.
Suppression de tag
Certains tags vont être supprimés. J’en ai personnellement utilisé certains de cette liste. C’est de l’histoire ancienne.
- <% tag d’ouverture
- <%= tag d’ouverture avec echo
- %> tag de fermeture
- (<script\s+language\s*=\s*(php| »php »|’php’)\s*>)i tag d’ouverture
- (</script>)i tag de fermeture
Plus de support de l’hexadécimal
Il est possible actuellement d’utiliser des nombres hexadécimaux, sous forme de string, qui sont considérés comme des int. Par contre, quand on compare ces nombres avec de vrais int, le résultat est parfois farfelue. Encore une fois pour harmoniser tout ça, les hexadécimaux passent à la trappe.
Nouvel opérateur ??
Cet opérateur permet de gagner du temps lorsqu’on teste si une variable existe. Si elle existe, le contenu de cette variable est renvoyée, sinon l’opérateur renvoi une chaîne prédéfinie.
Modification du switch case
Avant, il était tout à fait possible d’avoir plusieurs ‘default’ dans un switch case. Aucune erreur n’était affichée alors que maintenant, votre script lèvera une erreur de type E_COMPILE_ERROR lors de son exécution.
D’autres modifications ont été implémentées. Si vous souhaitez voir la liste complète pour vous préparer, rendez-vous sur cette page.
One Comment on “PHP 7 vs PHP 5.x : quelles sont les différences ?”
Merci pour cette brève aperçu de ce qui a été ajouter sur la nouvelle version de PHP.
Vraiment Joli Travail !