Salı, Kasım 16, 2010

PHP $this İşaretçisinin Adını Değiştirmek

Başlıktada belirttiğim gibi "$this" işaretçisi'nin adını değiştirmek mümkün mü?
Hangi amaçla böyle bir şeye ihtiyaç duyulur şuan için bir fikrim yok ama ceviz.net'in PHP bölümünde böyle bir başlıkla karşılaştım. Konuya buradan ulaşabilirsiniz.


Konu hakkındaki ilk yorumum böyle bir şeyin olamayacağı yönündeydi. Sonuçta bu ad php yorumlayıcısı tarafından belirlenmiş anahtar kelimeydi. Ama biraz düşününce yolu biraz dolandırarak çok basit bir yöntemle yapmak mümkün olabilirdi. Sınıf içinde $this işaretçisine referans olacak bir değişken tanımlayıp, sınıf içindeki değişkenlere yeni tanımladığımız değişkenle erişmek mümkün. Aşağıdaki ufak örnek daha iyi anlamaya yardımcı olabilir.


<?php
class Birsey
{
public $mesaj;
private $bu;//Yeni işaretçi olacak

function __constructor()
{
//Yeni değişkeni $this'e referans olarak ayarlıyoruz
$this->bu = &$this;
}

function birseyYap($mesaj)
{
//Yeni işaretçi ile sınıf değişkenlerine erişiyoruz
$bu->mesaj = $mesaj;
echo $bu->mesaj;
}
}

$nesne = new Birsey();
$nesne->birseyYap("Merhaba Dünya");
?>

Hiç yorum yok: