Les tests bêta de PHP 8 ont commencé

Introduit la première version bêta de la nouvelle branche du langage de programmation PHP 8. La sortie est prévue pour le 26 novembre. Parallèlement, les versions correctives de PHP 7.4.9, 7.3.21 et
7.2.33, qui a éliminé les erreurs et vulnérabilités accumulées.

principal les innovations PHP 8 :

  • Включение Compilateur JIT, dont l’utilisation améliorera la productivité.
  • support arguments de fonction nommés, vous permettant de transmettre des valeurs à la fonction par rapport aux noms, c'est-à-dire Vous pouvez transmettre des arguments dans n'importe quel ordre et définir des arguments facultatifs. Par exemple, « array_fill(start_index : 0, num : 100, value : 50) ».
  • Lors de l'appel de méthodes permis en utilisant l'opérateur « ? », qui permet de lancer un appel uniquement si la méthode est présente, ce qui évite des vérifications inutiles pour renvoyer la valeur « null ». Par exemple, "$dateAsString = $booking->getStartDate()?->asDateTimeString()" ;
  • support types de syndicats, définissant des collections de deux types ou plus (par exemple, « fonction publique foo(Foo|Bar $input) : int|float; »).
  • support les attributs (annotations) qui vous permettent de lier des métadonnées (telles que des informations de type) à des classes sans utiliser la syntaxe Docblock.
  • Prise en charge des expressions rencontre, qui, contrairement à switch, peut renvoyer des valeurs, prendre en charge des conditions de combinaison, utiliser des comparaisons de types strictes et ne nécessite pas de spécification de « rupture ».

    $résultat = correspondance($entrée) {
    0 => "bonjour",
    '1', '2', '3' => « monde »,
    };

  • Syntaxe raccourcie définitions de classe, vous permettant de combiner la définition d'un constructeur et de propriétés.
  • Nouveau type de retour - statique.
  • Nouveau genre - mixte, qui peut être utilisé pour déterminer si une fonction accepte des paramètres de différents types.
  • Expression renversement pour gérer les exceptions.
  • Carte faible pour créer des objets qui peuvent être sacrifiés lors du garbage collection (par exemple, pour stocker des caches inutiles).
  • Occasion en utilisant l'expression « ::class » pour les objets (analogue à l'appel de get_class()).
  • Occasion définitions dans le bloc catch des exceptions qui ne sont pas liées à des variables.
  • Occasion en laissant une virgule après le dernier élément de la liste des paramètres de la fonction.
  • Nouvelle interface Enfilable pour identifier les types de chaînes ou les données pouvant être converties en chaîne (pour lesquelles la méthode __toString() est disponible).
  • Nouvelle fonctionnalité str_contains(), un analogue simplifié de strpos pour déterminer l'occurrence 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.
  • Fonction ajoutée fdiv(), qui effectue une opération de division sans générer d'erreur lors de la division par zéro.
  • Modifié logique de jonction de chaînes. Par exemple, l'expression 'echo "sum:" . $a + $b' était auparavant interprété comme 'echo ("sum: " . $a) + $b', et en PHP 8 sera traité comme 'echo "sum: " . ($a + $b)'.
  • Resserré la vérification des opérations arithmétiques et binaires, par exemple, les expressions "[] % [42]" et "$object + 4" entraîneront une erreur.
  • Mis en œuvre un algorithme de tri stable dans lequel l'ordre des valeurs identiques est préservé au cours des différentes exécutions.
  • Source: opennet.ru

Ajouter un commentaire