Benim sitem

Değişken Değişkenler

Bazen değişken değişken isimlerine sahip olabilmek kullanışlı olur. Bu, devingen olarak belirtilebilen ve kullanılabilen bir değişken ismidir. Normal bir değişken şöyle bir deyimle atanır:

<?php
$a 
'merhaba';
?>

Bir değişken değişken bir değişkenin değerini alır ve bir değişkenin ismi gibi davranır. Yukarıdaki örnekteki, merhaba, iki tane dolar imi ile bir değişken ismi olarak kullanlabilir

<?php
$$a 'dünya';
?>

Bu noktada PHP sembol ağacında iki değişken tanımlanmış ve saklanmış olur: $a "merhaba" içerirken $merhaba ise "dünya" içerir. Bu nedenle, aşağıdaki iki örnek aynı sonucu üretir:

<?php
echo "$a ${$a}";
?>
<?php
echo "$a $merhaba";
?>

Her ikisi de 'merhaba dünya' üretir.

Değişken değişkenleri dizilerle kullanmak için, bir anlam karmaşası sorununu çözümlemeniz gerekir. $$a[1] yazdığınızda değişken olarak $a[1]'i mi kastettiğiniz, yoksa $$a'nın değişken olmasını isteyip [1] ile o değişkenin indisini mi kastettiğinizi çözümleyicinin bilmesi gerekir. Bu anlam karmaşasını çözümleyen söz dizimi, birinci durum için ${$a[1]} ve ikinci için ${$a}[1]'dir.

Sınıf özelliklerine değişken özellik isimlerinden de erişilebilir. Değişken özellik ismi çağrının yapıldığı etki alanı içinde çözümlenir. Örneğin, $foo->$zam gibi bir değişkeniniz olsun; burada $zam'ın etki alanı incelenir ve $foo özelliğinin ismi olarak kullanılır. $zam, bir diziye erişim için kullanılıyorsa yine aynı durum geçerlidir.

 

Örnek 1 - Değişken işlevi örneği

<?php
class foo {
    var 
$zam 'Buna zam derler.';
}

$foo = new foo();
$zam 'zam';
$maz = array('foo''zam''maz''para');
echo 
$foo->$zam "n";
echo 
$foo->$maz[1] . "n";
?>

Yukarıdaki örneğin çıktısı:


Buna zam derler.
Buna zam derler.

 

Uyarı

Değişken değişkenlerin işlev ve sınıf yöntemleri içinde PHP'nin Süper küresel dizileri ile kullanılamayacağını unutmayınız. $this değişkeni de devingen olarak gönderimli olamayan özel bir değişkendir.





Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol