(PHP 4, PHP 5)
list — Przypisz zmienne tak jakby były tablicą
Podobnie jak array(), nie jest na prawdę funkcją, ale elementem składni języka. Instrukcja list() jest używana do przypisywania listy zmiennych w jednej operacji.
Informacja:
list() działa tylko z tablicami o indeksach liczbowych zakładając że indeksy zaczynają się od 0.
Przykład #1 Przykłady użycia list()
<?php
$info = array('kawa', 'brązowa', 'kofeina');
// Listowanie wszystkich zmiennych
list($napój, $kolor, $składnik) = $info;
echo "$napój jest $kolor a $składnik czyni ją wyjątkową.\n";
// Listowanie niektórych elementów
list($napój, , $składnik) = $info;
echo "$napój zawiera $składnik.\n";
// Albo przeskoczmy od razu do trzeciego
list( , , $składnik) = $info;
echo "Potrzebna jest mi $składnik!\n";
// list() nie działa z łańcuchami znaków
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Przykład #2 Przykład użycia list()
<table>
<tr>
<th>Nazwisko pracownika</th>
<th>Pensja</th>
</tr>
<?php
$wynik = mysql_query("SELECT id, nazwisko, pensja FROM pracownicy", $conn);
while (list($id, $nazwisko, $pensja) = mysql_fetch_row($wynik)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$nazwisko</a></td>\n" .
" <td>$pensja</td>\n" .
" </tr>\n";
}
?>
</table>
list() Przypisuje wartości zaczynając parametru znajdującego się po prawej. Przy używaniu zwykłych zmiennych nie ma się o co martwić. Ale używając tablic z indeksami, zazwyczaj oczekuje się, że kolejność indeksów w tablicy będzie taka sama jak zapis wywołania list(), od lewej do prawej. Otóż tak nie jest. Zmienne są przypisywane w odwrotnej kolejności.
Przykład #3 Przykład użycia list() z indeksowaną tablicą
<?php
$info = array('kawa', 'brązowa', 'kofeina');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>
Przykład ten wyświetli co następuje (zauważ kolejność elementów porównując ją do tej, w której były one zapisane w wywołaniu funkcji list()):