Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP - Dizi Yapısallaştırma

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
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
Ticaret - 0%
0   0   0

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!

1__Tltzuq-XzgNpvjClUZBzQ.png


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;
?>
 

Bire bir çeviri, reddedildi.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst