PHP İle Sınıf İçerisindeki Bir Değişkene Değer Atama
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>'; ?>