downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

natcasesort> <ksort
[edit] Last updated: Fri, 30 Nov 2012

view this page in

list

(PHP 4, PHP 5)

listPrzypisz zmienne tak jakby były tablicą

Opis

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

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>

Ostrzeżenie

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()):


array(3) {
[2]=>
string(8) "kofeina"
[1]=>
string(5) "brązowa"
[0]=>
string(6) "kawa"
}

Patrz także: each() array() i extract().



natcasesort> <ksort
[edit] Last updated: Fri, 30 Nov 2012
 
add a note add a note User Contributed Notes list - [3 notes]
up
15
chris at chlab dot ch
6 months ago
The example states the following:
<?php
// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar);
// output: NULL
?>

If the string is in a variable however, it seems using list() will treat the string as an array:
<?php
$string
= "abcde";
list(
$foo) = $string;
var_dump($foo);
// output: string(1) "a"
?>
up
8
svennd
5 months ago
The list() definition won't throw an error if your array is longer then defined list.
<?php

list($a, $b, $c) = array("a", "b", "c", "d");

var_dump($a); // a
var_dump($b); // b
var_dump($c); // c
?>
up
0
srikanth at networthindia dot com
3 months ago
Note: list cannot assign array cast of object to variables straight away. first you need to convert the object to numeric indexed array.

ex:
list($a, $b, $d) = (array) $abc; // $abc is an object; this will not assign.
list($a, $b, $c) = array_values((array) $abc); // This will work.

 
show source | credits | sitemap | contact | advertising | mirror sites