liste()modification


1. list() n'attribue plus les valeurs dans l'ordre inverse

list($array[], $array[], $array[]) = [1, 2, 3];
var_dump($array);

Le code ci-dessus renverra un tableau : $array == [1, 2, 3] au lieu du précédent [3, 2, 1]

Remarque : Seul l'ordre d'affectation change, la valeur attribuée est toujours la même qu'auparavant.

 list($a, $b, $c) = [1, 2, 3];
 // $a = 1; $b = 2; $c = 3;

Toujours le même comportement qu'avant.

2. L'affectation de liste vide () n'est plus autorisée.

list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;

Les codes ci-dessus signaleront une erreur lors de l'exécution.

3. list() ne prend plus en charge la fonction de fractionnement de chaîne

$string = "xy";
list($x, $y) = $string;
Le résultat final de ce code est : $x == null et $y == null (il n'y aura pas d'invite)

Le résultat de l'exécution de PHP5 est : $ x == "x" et $y == "y".

4 De plus, list() fonctionne désormais également pour les objets tableau :

list($a, $b) = (object) new ArrayObject([0, 1]);
PHP7 : $a == 0 et $b == 1.

Résultats PHP5 : $a == null et $b == null.