PHP Dersleri

PHP ile Dizileri Değişkenlere Aktarma

Bu dersimizde dizi değişkenden gelen değerleri değişkenlere atayacağız. Bu sayede dizideki elemanlara daha kolay ulaşmış olacağız. Aynı zamanda dizi(array) karmaşasından kurtulmuş olacağız.

Basit Anlamda list() Yapısı

Dizileri değişkenlere atamak için list() fonksiyonu kullanılmaktadır. Basit olarak içerisine tanımlanan değişkenler dizideki elemanlarla eşleşecektir. Aşağıdaki örnek üzerinden sonuca bakabilirsiniz.

<?php
## Dizi Değişkeni
$dizi    = array("ibrahim","çevrük","ankara",2019);
## Dizi değerlerini değişkenlere atıyoruz
list($ad,$soyad,$sehir,$yil) = $dizi;
## bir değeri yazdırıyoruz.
echo $yil; // sonuç : 2019
?>

Yukarıdaki örnekte, $dizi isminde bir adet dizi bulunmaktadır. Bu dizideki elemanları tek tek değişkenlere atamak için list() fonksiyonu kullanılmaktadır. Bu fonksiyona dizi elemanı kadar değişken girilip diziye eşitlenmektedir. Böylelikle dizideki her bir anahtar bir değişkene atanmış olacaktır. Çıktı almak için sadece değişken adını yazmak yeterli olacaktır.

Değer Atlaması Yaparak Değişkenlere Atama

Dizi değişkende yer alan verilerin hepsini değişkenlere atamanıza gerek yok. İstemediğiniz bir sonucu atlamak için dizi değişken karşılığını boş bırakmanız yeterli olacaktır.

<?php
## Dizi Değişkeni
$dizi    = array("ibrahim","çevrük","ankara",2019);
## Dizi değerlerini değişkenlere atıyoruz
list($ad,$soyad, ,$yil) = $dizi;
## bir değeri yazdırıyoruz.
echo $soyad; // sonuç : çevrük
?>

Yukarıdaki örnekte, ankara değerinin karşılığı list() fonksiyonunda boş bırakılmıştır. İstenilmeyen sonuçları list() ile almak zorunda değilsiniz. Örnekteki gibi değeri boş bırakarak atlama yapabilirsiniz.

Dizi İçerisindeki Dizileri Adlandırma

Dizi değişken içerisinde bir dizi daha yer alıyorsa, bu diziye yeni bir değişken ismi atayabilirsiniz. Böylelikle dizi anahtar değeri yazarak oluşan karmaşanın önüne geçmiş olacaksınz.

<?php
## Dizi Değişkeni
$dizi    = array("ibrahim","çevrük",array("ankara", 2019));
## Dizi değerlerini değişkenlere atıyoruz
list($ad,$soyad,$digerBilgiler) = $dizi;
## bir değeri yazdırıyoruz.
print_r($digerBilgiler);
// Sonuç : Array ( [0] => ankara [1] => 2019 )
?>

Yukarıda yer alan örnekte, $dizi değişkenin içerisinde bir dizi daha yer almaktadır. Bu diziye ulaşmak için $dizi[“2”] şeklinde belirtmede bulunmak gerekecekti. Aynı zamanda bu dizinin içerisindeki ilk değeri ekrana yazdırmak için $dizi[“2”][“0”] şeklinde bir tanımlama yapılması gerekiyordu. Oldukça karışık görünen bu ulaşma tipi ilerleyen süreçte değerlerin nereden ve nasıl geldiğinin karmaşasına yol açacaktır. Yukarıdaki örnekte list() kullanılarak bu karmaşa çözülmüş durumdadır. Artık dizi içerisinde yer alan dizinin ilk değerine ulaşmak için $digerBilgiler[“0”] yazmak yeterli olacaktır. Hatta bu değişkenide list() fonksiyonundan geçirerek daha temiz bir değişkende değerleri tutabilirsiniz.

İç İçe Kullanım

Yukarıda yer alan örnekte dizi içerisinde yer alan başka bir diziye ulaşmanın kolay bir yoludan bahsetmiştim. Fakat dizi içerisinde yer alan diğer dizideki veriler için yine anahtar değer girmek gerekiyordu. Bu durumuda ortadan kaldırıp sadece değişken adı yazarak ulaşmak için iç içe list() kullanıyoruz.

<?php
## Dizi Değişkeni
$dizi    = array("ibrahim","çevrük",array("ankara", 2019));
## Dizi değerlerini değişkenlere atıyoruz
list($ad,$soyad,list($sehir, $yil)) = $dizi;
## bir değeri yazdırıyoruz.
echo $yil; // Sonuç : 2019
?>

Yukarıdaki örnekte, $dizi değişkeninde yer alan diğer dizi için list() değişkeninde ayrı bir list() oluşturularak dizi aktarması yapılmaktadır. Bir önceki başlıktaki gibi dizinin anahtar değerini yazarak değil, anahtar için atanan değişkeni yazarak değere ulaşabilirsiniz.

Kısa Kullanım (PHP 7.1) Özelliği

list() fonksiyonunu PHP 7.1 ve sonraki sürümler için kısaltarakta kullanabilirsiniz. Bu kullanımda oldukça pratiktir.

<?php
## Dizi Değişkeni
$dizi    = array("ibrahim","çevrük");
## Dizi değerlerini değişkenlere atıyoruz
[$ad,$soyad] = $dizi;
## bir değeri yazdırıyoruz.
echo $soyad; // Sonuç : çevrük
?>

Yukarıdaki örnekte list() tanımlaması hiçbir ifade belirtilmeden köşeli parantezler içinde belirtilmiştir. Köşeli parantezler içinde tanımlanan değişkenler, $dizi değişkenindeki her bir ifadeyi belirterek çıktı verecektir.

KALDIRILDI: list() Artık String İfadeleri Desteklemiyor!

Örneklerden de anlaşıldığı gibi list() fonksiyonu sadece dizi elemanları için gerçekleştirilmektedir. Bu fonksiyonu string bir ifadede kullandığınız zaman sonuç NULL olacaktır.

<?php
## String tanımlama
list($deneme) = "deneme";
## sonucu yazdırıyoruz
var_dump($deneme);
// sonuç : NULL
?>

Yukarıda yer alan örnekteki kullanımın sonucu NULL olarak döndürülmektedir. Çünkü list() değişkeni artık string ifadeleri desteklememektedir. Eşleştirme için bir dizi(array) yer almalıdır.

Daha Fazla Göster

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Kapalı