Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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