list() ne vérifie pas le type
<?php
list($a) = null;
list($a) = 1;
list($a) = 'a';
list($a) = 1.2;
function foo() { yield 3; }
// syntax error
//list($a) = ...foo();
list($a) = iterator_to_array(foo());
// fatal error
//list($a) = (object) ['a' => 1];
//Undefined array key 0
list($a) = [];
La commande list() ne signale pas que le type de l’opérande droit est incorrect. Il est alors possible d’utiliser list() avec des entiers, des chaînes ou des booléens, et d’obtenir des valeurs null pour toutes les variables.
En revanche, list() se plaint si le tableau en partie droite ne contient pas suffisamment de valeurs pour remplir le nombre de variables. Il produit également une erreur fatale avec un objet, car un objet ne peut pas être utilisé comme un tableau.
Enfin, list() n’est pas compatible avec une ellipse ... du côté droit. Pour convertir un Generator en une liste de variables, il faut d’abord utiliser iterator_to_array().
See Also
PHP Features
Last updated: 11 October 2026