Ömer Ücel

March 15, 2008

PHP İle Sınıf İçerisindeki Bir Değişkene Değer Atama

Filed under: Genel — Tags: — Ömer Ücel @ 12:52 pm

Sınıf içerisindeki bir değişkene $this->değişken = değer; türünden bir basitlik söz konusu değer atamada ama geliştirmekte olduğum(kendim için) bir veritabanı işlemleri sınıfında bu değer atama işlemini farklı bir yolla yapmam gerekiyordu. Bunun için php nin bir özelliğini kullanmaya çalıştım. Normalde ${'deneme'} = 5; gibi bir kod ile $deneme değişkenini oluşturup 5 değerini atamış oluyoruz. Ama bu sınıf içerisinde ${'this->deneme'}=5; şeklinde çalışmıyor. Uzun uğraşlar sonucunda sınıf içerisindeki değer atama problemini çözdüm. Eval fonksiyonu ile aşağıdaki gibi bir sistemi çalıştırabildim:

 
<?php
class deneme{
    var $sayac;
    var $sonuc;
 
    function basla(){
        if (isset($this->sayac)){
            $this->sayac++;
        }else{
            $this->sayac = 0;
        }
        $this->ekle('sonuc',$this->sayac);
    }
 
    function ekle($name,$value){
        if ($this->sayac>0){
            eval('
            if (is_array($this->'.$name.')==false)
                unset($this->'.$name.');
            ');
            eval('$this->'.$name.'['.$this->sayac.'] = '.$value.';');
        }else{
            eval('$this->'.$name.' = '.$value.';');
        }
    }
}
 
$islem = new deneme;
 
$islem->basla();
echo $islem->sonuc.'<br>';
$islem->basla();
echo $islem->sonuc[1].'<br>';
$islem->basla();
echo $islem->sonuc[2].'<br>';
?>
 

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress