- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 9 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
PHP'de, Dizi yapıbozumu terimi, dizi elemanlarını ayrı değişkenlere çıkarma mekanizmasını ifade eder. Buna dizinin paketten çıkarılması da denebilir. PHP'nin list() yapısı, verilen diziyi yapıbozumuna uğratmak ve öğelerini tek bir ifadede bir değişkenler listesine atamak için kullanılır.
list($var1, $var2, $var3, . . . ) = array(val1, val2, val3, . . .);
Sonuç olarak, val1 $var1'e, val2 $var2'ye atanır ve bu böyle devam eder. Parantezlerden dolayı list()'in bir fonksiyon olduğunu düşünebilirsiniz, ancak dönüş değeri olmadığı için öyle değildir. PHP bir dizeyi bir dizi olarak ele alır, ancak list() ile açılamaz. Ayrıca, list()'deki parantez boş olamaz.
list() yerine, diziyi parçalamak için kısayol olarak köşeli parantezleri [] de kullanabilirsiniz.
[$var1, $var2, $var3, . . . ] = array(val1, val2, val3, . . .);
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$marks = array(50, 56, 70);
list($p, $c, $m) = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
# shortcut notation
[$p, $c, $m] = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
?>
Aşağıdaki çıktıyı üretecektir:
Physics: 50 Chemistry: 56 Maths: 70
Physics: 50 Chemistry: 56 Maths: 70
Bir İlişkisel Dizinin Yapısının Çözülmesi
PHP 7.1.0'dan önce, list() yalnızca sayısal indeksleri 0'dan başlayan sayısal dizilerde çalışıyordu. PHP 7.1'de, dizi parçalama ilişkisel dizilerde de çalışıyor.Aşağıdaki ilişkisel diziyi, sayısal olmayan dizinlere sahip bir diziyi yapıbozuma uğratmaya (veya paketinden çıkarmaya) çalışalım.
$marks = array('p'=>50, 'c'=>56, 'm'=>70);
Bu diziyi parçalamak için list() ifadesi her dizi anahtarını bağımsız bir değişkenle ilişkilendirir.
list('p'=>$p, 'c'=>$c, 'm'=>$m) = $marks;
Bunun yerine, [] alternatif yapı bozma gösterimini de kullanabilirsiniz.
['p'=>$p, 'c'=>$c, 'm'=>$m] = $marks;
Aşağıdaki PHP betiğini deneyin ve çalıştırın:
PHP:
<?php
$marks = array('p'=>50, 'c'=>56, 'm'=>70);
list('p'=>$p, 'c'=>$c, 'm'=>$m) = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
# shortcut notation
['p'=>$p, 'c'=>$c, 'm'=>$m] = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
?>
Dizi Elemanlarını Atlama
Dizinli bir dizi durumunda, bazı öğelerini atlayıp yalnızca diğerlerini gerekli değişkenlere atayabilirsiniz.
PHP:
<?php
$marks = array(50, 56, 70);
list($p, , $m) = $marks;
echo "Physics: $p Maths: $m" . PHP_EOL;
# shortcut notation
[$p, , $m] = $marks;
echo "Physics: $p Maths: $m" . PHP_EOL;
?>
İlişkisel dizilerde, indeksler 0'dan başlayarak artımlı olmadığından, atama yaparken eleman sırasını takip etmeye gerek yoktur.
PHP:
<?php
$marks = array('p'=>50, 'c'=>56, 'm'=>70);
list('c'=>$c, 'p'=>$p, 'm'=>$m) = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
['c'=>$c, 'm'=>$m, 'p'=>$p] = $marks; # shortcut notation
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
?>
İç İçe Diziyi Yapısallaştırma
Dizi yapıbozumu kavramını iç içe geçmiş dizilere de genişletebilirsiniz. Aşağıdaki örnekte, iç içe geçmiş alt dizi, dizinlenmiş bir dizidir.
PHP:
<?php
$marks = ['marks' => [50, 60, 70]];
['marks' => [$p, $c, $m]] = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
?>
PHP:
<?php
$marks = ['marks' => ['p'=>50, 'c'=>60, 'm'=>70]];
['marks' => ['p'=>$p, 'c'=>$c, 'm'=>$m]] = $marks;
echo "Physics: $p Chemistry: $c Maths: $m" . PHP_EOL;
?>




