PHP list() Fonksiyonu
Tanımlanan bir diziden istenilen isimde değişken(ler) oluşturarak kullanmamızı sağlar. Genelde anahtarı olmayan anlamsız dizileri daha anlamlı kılmak adına bu işlemi yaparız.
Yapısı (Syntax)list ( mixed $var1 [, mixed $varN... ] ) : array
Parametreler
-
$var1 mixedDeğişene atanmış ilk değeri temsil eder.
-
$varN.. mixedSırasıyla atanmış değeri temsil etmeye devam eder.
Dönen Değer
array
- Geriye atanmış bir dizi döner.
Versiyon Güncellemeleri
Versiyon | Açıklama |
---|---|
7.0.0 |
list() artık string ifadeler için kullanılamaz. |
7.0.0 |
list() ifadesi tamamen boş olamaz. Yani mutlaka en az 1 tanım yapılmalı. |
7.0.0 | Atama işlemlerinin gerçekleştirilme sırası değişti. |
7.1.0 | Spesifik olarak anahtar ismi belirtilerek kullanılabilir. Örnekler kısmından örneğini görebilirsiniz. |
Örnekler
Basit bir örnekle anlamaya çalışalım.
<?php
// Tüm değerleri değişene atayalım
list($ad, $soyad, $yas) = array('Tayfun', 'Erbilen', 26);
echo $ad; // Çıktı: Tayfun
// Bazı değerleri es geçerek değişene atayalım
list(, , $yas) = array('Tayfun', 'Erbilen', 26);
echo $yas; // Çıktı: 26
// list() artık stringler ile çalışmamaktadır! Aşağıdaki örnek hatalıdır.
list($bar) = "abcde";
var_dump($bar); // Çıktı: NULL
// Farklı bir örnek
list($kategori, $altKategoriler) = array('CSS', array('SASS', 'LESS', 'Stylus'));
print_r($altKategoriler);
?>
İç içe (nested) kullanımı ise şöyledir;
<?php
list($deger1, list($deger2, $deger3)) = array('Değer 1', array('Değer 2', 'Değer 3'));
echo $deger2; // Çıktı: Değer 2
?>
Dizi indexleriyle çalışmasını anlamak adına aşağıdaki örnek verilebilir. Burada önemli olan index değerleridir, dizideki sırası değil.
<?php
$foo = array(
1 => '1. Değer',
2 => '2. Değer',
0 => '0. Değer'
);
list($x, $y, $z) = $foo;
echo $x; // Çıktı: 0. Değer
echo $z; // Çıktı: 2. Değer
?>
PHP 7.1.0'dan itibaren ise spesifik olarak anahtar ismi belirtilebilir. Bu örnekler PHP'nin 7.1.0 versiyonundan itibaren çalışır halde kullanılabilir aksi taktirde hata alırsınız.
<?php
$uyeler = [
['ad' => 'Tayfun', 'soyad' => 'Erbilen'],
['ad' => 'Servet', 'soyad' => 'Sevimli']
];
foreach ($uyeler as ['ad' => $uye_adi, 'soyad' => $uye_soyadi]) {
echo "<p>Merhaba ben {$uye_adi} {$uye_soyadi}</p>";
}
# YA DA ŞU ŞEKİLDE KULLANABİLİRİZ
list(0 => $tayfun, 2 => $servet) = [0 => 'Tayfun Erbilen', 1 => 'Mehmet Seven', 2 => 'Servet Sevimli'];
echo $servet; // Çıktı: Servet Sevimli
?>
PHP 7.1'den itibaren şu şekilde kısaltılarakta kullanılabilir;
<?php
[$ad, $soyad] = ['Tayfun', 'Erbilen'];
echo $ad;
?>