Ahmet Taşhan Ahmet Taşhan • 25 Haziran 2018
Türk Bayrağı

Dizinin anahtar ve değeri ile değişken adı ve değer ataması nasıl yapılır

Ahmet Taşhan • 25 Haziran 2018

Dizi; değerleri anahtarlarla ilişkilendiren, bir veya birden çok verileriyi bir arada saklayan yapıya sahiptir. Bu yapıya kısaca veri kümesi diye biliriz. Bu veri kümesi farklı amaçlarla kullanabilir; personel listesi, Türkçe sözlük, haftanın günleri, yemek listesi, nöbetçi eczaneler gibi birçok verilerimizi saklayabiliriz.

Genelde dizilerimizi şu şekillerde tanımlarız;

$dizi = array(
    "anahtar" = "deger",
);
// ya da
$dizi["anahtar"] = "deger";

Dizi bizi en azından beni bir çok kafa karıştıracak değişken adlarından kurtarıyor. Bundan dolayı dizileri değişkenlerden çok tercih ediyorum. Neyse konumuza dönelim. ;) Şimdi sizlere yukarıda gösterdiğimiz tanımlanmış dizi elemanlarını $anahtar = "deger" şekline dönüştürmenin bir yolunu göstermeye çalışalım.

foreach ( $dizi AS $anahtar = $deger )
{
    ${$anahtar} = $deger;
}

Öncelikle diziyi döngüye girdiriyoruz ve anahtar'ı ${$anahtar}şeklinde değişken adını tanımlıyoruz, daha sonra o anahtara ait değeri tanımlanan değişkene atıyoruz. Hepsi bu kadar. :)

Nerede kullanıyorum?

Örneğin SEO adında ve parametreleri olan bir fonksiyon tanımlayalım;

function SEO ( $title = "", $desc = "", $imgurl ="", $url = "" )
{
    // fonksiyon icerigi
}

Dikkat ederseniz oluşturduğumuz fonksiyonda $title, $desc, $imgurl, $url gibi parametrelerimiz sırasıyla girilmiştir. Bura kadar hiçbir sıkıntı yok. Bu fonksiyonu tanımladıktan belirli bir zaman sonra parametre sırasıyla girmesi benim biraz zoruma gidiyor. Bunun içinde yukarıdaki gibi bir dizi tanımlayıp ve bu dizinin anahtarının adını değişken adı yapıp ve değişkene değerlerini atayarak bu sorunumu giderebiliyorum.

Sonuç olarak fonksiyonumun son hali;

function SEO ( $seo_content )
{
    foreach ( $seo_content AS $anahtar = $deger )
    {
        ${$anahtar} = $deger;
    }
    // artık degiskenlerim hazir, kullanima gecebilirim.
    // fonksiyon icerigi
}

$content = array(
    'title' = 'Sayfanın Başlığı',
    'desc' = 'Sayfaya ait 160 karekterli kısa bir açıklama alanı.',
    'imgurl' = 'sayfaya_ait_resim_yolu.jpg',
    'url' = 'sayfanın tam yolu'
);
SEO($content);

Kaynakçalar:

  1. Github
  2. Php.net

yorumlar (0)

yorum yap

avatar