premiĂšre version bĂȘta de la nouvelle branche du langage de programmation PHP 8. La sortie est prĂ©vue pour le 26 novembre. En mĂȘme temps, des versions correctives de PHP 7.4.9, 7.3.21 et
7.2.33, qui corrigent des erreurs et des vulnérabilités accumulées.
Principales PHP 8 :
- , dont l'application permettra d'améliorer la performance.
- arguments nommĂ©s pour les fonctions, permettant de passer des valeurs Ă une fonction en les liant Ă des noms, c'est-Ă -dire que les arguments peuvent ĂȘtre passĂ©s dans n'importe quel ordre et dĂ©terminer des arguments optionnels. Par exemple, «array_fill(start_index: 0, num: 100, value: 50)».
- Lors de l'appel de méthodes l'utilisation de l'opérateur «?», qui permet de déclencher l'appel uniquement si la méthode est présente, ce qui évite des vérifications inutiles pour un retour de valeur «null». Par exemple, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
- Support , définissant des collections de deux types ou plus (par exemple «public function foo(Foo|Bar $input): int|float;»).
- Support (annotations), permettant d'associer des métadonnées (par exemple, des informations sur les types) aux classes sans utiliser la syntaxe Docblock.
- Support des expressions , qui, contrairement à switch, peuvent renvoyer des valeurs, supportent la combinaison de conditions, utilisent une comparaison stricte des types et ne nécessitent pas de spécifier «break».
$result = match($input) {
0 => «hello»,
â1â, â2â, â3â => «world»,
}; - pour la définition des classes, permettant de combiner la définition du constructeur et des propriétés.
- Un nouveau type de valeur de retour â .
- Le nouveau type â , qui peut ĂȘtre utilisĂ© pour dĂ©finir les paramĂštres d'une fonction acceptant diffĂ©rents types.
- Expression pour la gestion des exceptions.
- pour crĂ©er des objets qui peuvent ĂȘtre collectĂ©s par le ramasse-miettes (par exemple, pour stocker des caches optionnels).
- l'utilisation de l'expression «::class» pour les objets (équivalent de l'appel à get_class()).
- les définitions dans un bloc catch d'exceptions non liées à des variables.
- laisser une virgule aprÚs le dernier élément d'une liste de paramÚtres de fonction.
- Nouvelle interface pour identifier tous les types ou donnĂ©es de chaĂźne pouvant ĂȘtre convertis en chaĂźne (pour lesquels la mĂ©thode __toString() est disponible).
- La nouvelle fonction , un équivalent simplifié de strpos pour déterminer la présence d'une sous-chaßne, ainsi que les fonctions str_starts_with() et str_ends_with() pour vérifier les correspondances au début et à la fin d'une chaßne.
- Une fonction a été ajoutée , effectuant une opération de division sans émettre d'erreur en cas de division par zéro.
- vérification des opérations arithmétiques et bit à bit, par exemple, les expressions «[] % [42]» et «$object + 4» entraßneront une erreur.
- un algorithme de tri stable, dans lequel l'ordre des valeurs identiques est préservé lors de différentes exécutions.
- algorithme de tri stable, oĂč l'ordre des valeurs identiques est prĂ©servĂ© lors de diffĂ©rentes exĂ©cutions.
Source : opennet.ru
