Forum und email

list

(PHP 4, PHP 5)

list — Wijs variabelen toe alsof zij een array zijn

Beschrijving

void list ( mixed $varname , mixed $... )

Net als array() is dit niet echt een functie, maar een language construct. list() wordt gebruikt voor het toewijzen van een lijst van variabelen in een enkele handeling.

Note: list() werkt alleen op numerieke arrays en neemt aan dat numerieke indices beginnen bij 0.

Example#1 list() voorbeelden

<?php

$info 
= array('coffee''brown''caffeine');

// Wijs alle variabelen toe
list($drink$color$power) = $info;
echo 
"$drink is $color and $power makes it special.\n";

// Wijs enkele variabelen toe
list($drink, , $power) = $info;
echo 
"$drink has $power.\n";

// Wijs alleen de derde variabele toe
list( , , $power) = $info;
echo 
"I need $power!\n";

?>

Example#2 Een gebruiksvoorbeeld van list()

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result 
mysql_query("SELECT id, name, salary FROM employees"$conn);
while (list(
$id$name$salary) = mysql_fetch_row($result)) {
    echo 
" <tr>\n" .
          
"  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          
"  <td>$salary</td>\n" .
          
" </tr>\n";
}

?>

</table>

Warning

list() wijst de waarden toe beginnende bij de meest rechtse parameter. Wanneer je normale variabelen gebruikt, hoef je hier geen rekening mee te houden. Echter, wanneer je arrays gebruikt met indices, dan zou je gewoonlijk verwachten dat de volgorde van de indices in de array gelijk is aan de volgorde waarin je het beschreef in list() van links naar rechts, wat niet het geval is. De toewijzing gebeurt in omgekeerde volgorde.

Example#3 list() gebruiken met array indices

<?php

$info 
= array('coffee''brown''caffeine');

list(
$a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Geeft het volgende resultaat (let op de volgorde van de elementen in vergelijking tot de volgorde waarin zij waren geschreven in de list() syntax):

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

Zie ook each(), array() en extract().