(PHP 4, PHP 5, PHP 7, PHP 8)
list — Değişkenlere bir dizi gibi atama yapar
array() gibi bu da bir işlev değil bir dil oluşumudur. list() işlevi tek deyimde birden fazla değişkene atama yapmak için kullanılır. Dizgeler patlatılamaz ve list() ifadeleri tamamen boş olamaz.
Bilginize:
PHP 7.1.0 öncesinde, list() işlevi sadece sayısal dizilerde çalışır ve indislerin sıfırdan başladığı varsayılırdı.
değişken
Değişken.
değişkenler
Diğer değişkenler.
Atanan dizi döner.
Sürüm: | Açıklama |
---|---|
7.3.0 | Dizi bozmada gönderim atamaları için destek eklendi. |
7.1.0 | list() işlevine anahtarlar belirtilebiliyor. Bu, tamsayı olmayan veya sıralı olmayan anahtarlarla dizilerin yok edilmesini sağlar. |
Örnek 1 - list() örnekleri
<?php
$veri = array('kahve', 'uyku', 'kafein');
// Değişkenlerin tamamını listeleyelim
list($içecek, $neyi, $güç) = $veri;
echo "$içecek$neyi kaçırır, çünkü içinde $güç vardır.\n";
// Bir kısmını listeleyelim
list($içecek, , $güç) = $veri;
echo "$içecek$güç içerir.\n";
// Sadece üçüncü kalsın
list( , , $güç) = $veri;
echo "Bana $güç lazım!\n";
// list() dizgelerle çalışmaz
list($bar) = "abcde";
var_dump($bar); // NULL
?>
Örnek 2 - list() kullanım örneği
<?php
$result = $pdo->query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>
Örnek 3 - İç içe list() kullanımı
<?php
list($a, list($b, $c)) = array(1, array(2, 3));
var_dump($a, $b, $c);
?>
int(1) int(2) int(3)
Örnek 4 - list() ve indis tanımlarının sırası
list() tarafından tüketilecek dizi indislerinin tanımlanma sırası konu dışıdır.
<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);
Çıktısı aşağıdadır (elemanlar list() sözdiziminde yazıldıkları gibi sıralanmıştır):
array(4) { [2]=> string(1) "a" ["foo"]=> string(1) "b" [0]=> string(1) "c" [1]=> string(1) "d" } string(1) "c" string(1) "d" string(1) "a"
Örnek 5 - Anahtarlar ve list()
PHP 7.1.0 itibariyle, list() artık rasgele ifadeler halinde verilebilecek belirgin anahtarlar da içerebilir. Tamsayı ve dize anahtarlarının karıştırılmasına izin verilir; ancak, anahtarı olan ve olmayan öğeler karıştırılamaz.
<?php
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";
Yukarıdaki örneğin çıktısı:
id: 1, name: Tom id: 2, name: Fred 2, 4