Le test bĂȘta de PHP 8 a commencĂ©

PrĂ©sentĂ© 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 nouveautés PHP 8 :

  • l'inclusion du compilateur JIT, dont l'application permettra d'amĂ©liorer la performance.
  • Support 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 il est dĂ©sormais 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 types d'union, dĂ©finissant des collections de deux types ou plus (par exemple «public function foo(Foo|Bar $input): int|float;»).
  • Support attributs (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 match, 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»,
    };

  • Une syntaxe abrĂ©gĂ©e 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 — static.
  • Le nouveau type — mixed, qui peut ĂȘtre utilisĂ© pour dĂ©finir les paramĂštres d'une fonction acceptant diffĂ©rents types.
  • Expression throw pour la gestion des exceptions.
  • WeakMap pour crĂ©er des objets qui peuvent ĂȘtre collectĂ©s par le ramasse-miettes (par exemple, pour stocker des caches optionnels).
  • PossibilitĂ© l'utilisation de l'expression «::class» pour les objets (Ă©quivalent de l'appel Ă  get_class()).
  • PossibilitĂ© les dĂ©finitions dans un bloc catch d'exceptions non liĂ©es Ă  des variables.
  • PossibilitĂ© laisser une virgule aprĂšs le dernier Ă©lĂ©ment d'une liste de paramĂštres de fonction.
  • Nouvelle interface Stringable 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 str_contains(), 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 fdiv(), effectuant une opĂ©ration de division sans Ă©mettre d'erreur en cas de division par zĂ©ro.
  • La logique de concatĂ©nation de chaĂźnes a Ă©tĂ© modifiĂ©e. Par exemple, l'expression ‘echo «sum: » . $a + $b’ Ă©tait prĂ©cĂ©demment interprĂ©tĂ©e comme ‘echo («sum: » . $a) + $b’, tandis qu’en PHP 8, elle sera traitĂ©e comme ‘echo «sum: » . ($a + $b)’. vĂ©rification des opĂ©rations arithmĂ©tiques et bit Ă  bit, par exemple, les expressions «[] % [42]» et «$object + 4» entraĂźneront une erreur.
  • Renforcement un algorithme de tri stable, dans lequel l'ordre des valeurs identiques est prĂ©servĂ© lors de diffĂ©rentes exĂ©cutions.
  • l'opĂ©rateur de sĂ©quence optionnelle algorithme de tri stable, oĂč l'ordre des valeurs identiques est prĂ©servĂ© lors de diffĂ©rentes exĂ©cutions.
  • Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster