PHP'de $$ (Çift dolar veya dolar dolar) ne işe yarar ? ne anlama gelir ?
Biliyoruz ki PHP'de $(Dolar) kullanarak değişkenleri oluşturuyoruz ve bu değişkenler string , integer, float vb. veri tiplerini bellekte depolamamıza olanak sağlıyor . $degisken adında bir değişken oluşturduğumuzda bu değişken karşısına aldığı değeri depolar .
$$(Çift dolar) ile oluşturduğumuz değişkenin değerini tutabilen bir referans değişkendir . Ve aynı zamanda direkt değişkenin değeri ile bir değişken ismi olarak çağrılabilir örnek :
// Değişkenimizi ve değerini oluşturuyoruz.
$x = "Tekno";
// Referans Değişkenimiz .
$$x = "TeknoDerya";
// Normal değişkenimiz $x
echo $x . "\n";
// referans Değişkenimiz $$x ($Tekno)
echo $$x . "\n";
// Referans değişkenimize değer olarak erişebiliriz
echo "$Tekno";
Çıktı:
TeknoDerya
TeknoDerya
Gördüğünüz gibi asıl özelliği bir değişkenin değerini alıp bunu bir değişken olarak kullanmamıza olan sağlıyor . Bunun en sık kullanıldığı kullanım şu şekilde :
Aşağıdaki gibi bir dizimiz olsun .
$params = array(
"Ad" => "Yılmaz",
"Soyad" => "Kadan"
);
Bu dizinin elemanlarına erişmek istediğimizde şöyle bir kullanım yapmamız gerekmekte:
echo $params['Ad'];
//Yılmaz
echo $params['Soyad'];
//Kadan
Ama diyelim ki bu değerleri bir değişken olarak kullanmak istiyoruz yapmamız gereken şöyle bir kod:
foreach ($params as $key => $value){
$$key = $value;
}
Bu kod bloğu bize tüm keylerin adında değişkenler oluşturacak bu bu değişkenlerin karşısına onların değerlerini atacaktır . Örnek olarak :
echo $Ad;
// Yılmaz
echo $Soyad;
// Kadan
Gördüğünüz gibi bir dizinin elemanlarının key değerlerini referans değişken yardımı ile değişkenler haline getirdik ve bu yeni değişkenlere de normalde almaları gereken value'leri yani değerleri atadık. Bu sayede artık tüm key'ler bir değişken haline geldi ve tutukları value değerleri değişkenlere atanmış oldu .