PHP'de $$ (Çift dolar veya dolar dolar) ne işe yarar ? ne anlama gelir ?

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ı: 

Tekno
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 .