PHP 7.4

Tresor kasenda
2 min readDec 4, 2019

PHP 7.4, la prochaine version mineure de PHP 7, est le 28 novembre 2019. Nous sommes donc partis pour plonger dans certains ajouts, avec plus d'expositions et de nouvelles versions qui rendront PHP plus rapide et plus fiable.

Même si PHP 7.4 améliorait les performances et la lisibilité du code, PHP 8 deviendrait le véritable outil pour les performances de PHP, la proposition pour l'inclusion du JIT étai déjà approuvé.

Dans notre première article nous allons parler de 5 mis a jours des fonctionnalité de PHP 7.4.

  1. Propriétés typées

Les propriétés des classes sont désormais supportées par la déclaration du type.

<?php 
class Person {
public int $user;
public string $article;
}
?>

L’exemple ci-dessus s’assurera qu’à $person->user peuvent uniquement être assignées des valeurs d’entier et à $person->article peuvent uniquement être assignées des valeurs chaîne de caractère

2. Fonctions flèches

Les fonctions flèches fournissent une syntaxe courte pour définir des fonctions qui lient la portée par valeur implicitement.

<?php 
$facteur = 10;
$numero = array_map(fn($num) => $num * $facteur, [1,2,3,4,]);
?>

3. Type de retour covariant et type d’argument contravariant limité

Le code suivant va désormais fonctionner:

<?php 
class Valeur1{}
class Valeur2 extends Valeur1 {}
class Procuer{
public function method(): Valeur1 {}
}
class ChildProcedur extends Procuer{
public function method(): Valeur2 {}
}

Le support de variance totale est seulement disponible quand l’autoloading est utilisé. Dans un fichier unique seules des références de types non cycliques sont possibles, car toutes les classes doivent être disponibles avant qu’elles soient référencées

4. La fonction proc_open()

proc_open() accepte désormais un tableau au lieu d’une chaîne de caractères pour la commande. Dans ce cas-là, le processus est ouvert directement (sans passer à travers un shell) et PHP s’occupera d’échapper argument nécessaire.

<?php 
proc_open(['php, '-r', 'echo "hello word\n"; '], $descripteur, $pippes);
?>

proc_open() supporte désormais les descripteurs redirect et null

<?php 
proc_open($shell,
[1 => ['user', 'w'],
2 => ['redirect', 1]
], $pipes
);
?>

5. Les fonctions array merge sans arguments

array_merge() et array_merge_recursive() peuvent désormais être appelées sans arguments, dans ce cas-là elles retourneront un tableau vide. Ceci est utile en conjonction avec l’opérateur de décomposition, par exemple array_merge(…$arrays).

--

--

Tresor kasenda

I’m Scott Tresor backend developer since when, and I’m PHP developer with Laravel framework and Javascript with Angular, Vuejs and AdonisJs framework.