(PHP 4, PHP 5, PHP 7)
Assign variables as if they were an array
array list ( mixed $var1 [, mixed $... ] )
Like array(), this is not really a function, but a language construct. list() is used to assign a list of variables in one operation.
Parameters:
var1
A variable.
Returns:
Returns the assigned array.
Changelog:
7.0.0
The order that the assignment operations are performed in has changed.
7.0.0
list()
7.0.0
Strings can no longer be unpacked.
Notes:
list() only works on numerical arrays and assumes the numerical indices start at 0.
Examples:
list() examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $info = array ( 'coffee' , 'brown' , 'caffeine' ); // Listing all the variables list( $drink , $color , $power ) = $info ; echo "$drink is $color and $power makes it special.\n" ; // Listing some of them list( $drink , , $power ) = $info ; echo "$drink has $power.\n" ; // Or let's skip to only the third one list( , , $power ) = $info ; echo "I need $power!\n" ; // list() doesn't work with strings list( $bar ) = "abcde" ; var_dump( $bar ); // NULL ?> |
An example use of list()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <table> <tr> <th>Employee name</th> <th>Salary</th> </tr> <?php $result = $pdo ->query( "SELECT id, name, salary FROM employees" ); while (list( $id , $name , $salary ) = $result ->fetch(PDO::FETCH_NUM)) { echo " <tr>\n" . " <td><a href=\"info.php?id=$id\">$name</a></td>\n" . " <td>$salary</td>\n" . " </tr>\n" ; } ?> </table> |
Using nested list()
1 2 3 4 5 6 7 | <?php list( $a , list( $b , $c )) = array (1, array (2, 3)); var_dump( $a , $b , $c ); ?> |
int(1) int(2) int(3)
Using list() with array indices
1 2 3 4 5 6 7 8 9 | <?php $info = array ( 'coffee' , 'brown' , 'caffeine' ); list( $a [0], $a [1], $a [2]) = $info ; var_dump( $a ); ?> |
Gives the following output (note the order of the elements compared in which order they were written in the list() syntax):
array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }
See also:
each() -
array() -
Please login to continue.