merhaba
bunun mantığını anlayamadım ben karşılaştırma yapmıyorum ki ?
Ayrıca $this->$degisken  değilde o $this->degisken olması gerekiyordu galiba.
ben kod içerisinde nesnemdeki bir public değişkenin değeri değişince
öncelikle değişti yazısını yazdırıp sonra normal atama işlemini yapmak istiyorum
yani == ile eşitlik kontrolünü neden yaptınız ?

2009/8/27 Mecid UYSAL <[email protected]>:
>        function __set($degisken,$degeri){
>                echo("<br>Verin olan ".$degisken." e ".$degeri." verisini
> yerleştirdim<br>");
>                //$degisken=$degeri;
>
>                // Yukardaki satiri bu sekilde degistirirsen hatan
> duzelecektir..
>                $this->$degisken = =$degeri;
>        }
>
> Kolay gelsin...
>
>
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Ömer F.
> USTA
> Sent: Thursday, August 27, 2009 5:32 AM
> To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
> Subject: [Linux-programlama] [php (5.3.0)] Override problemim ( __get /
> __set )
>
> Merhabalar
> php tarafındaki oop eksikliklerimi gidermek için örnekler yazarak
> eksiğimi gidermeye çalışırken şöyle bir sorunla karşılaştım:
>
> __get ve __set fonksiyonlarını Override etmeme rağmen php bunu yoksayıyor.
> Acaba nerede hata yapıyorum :
>
> Araba.php dosya içeriği :
>
> <?php
>
> class Araba {
>        protected $calisiyorMu = false;
>        protected $marka = "";
>        public $deger1 = 100;
>
>        function __construct($MarkaAdi) {
>                $this->calisiyorMu = true;
>                $this->marka=$MarkaAdi;
>        }
>
>        function calistir() {
>                $this->calisiyorMu=true;
>        }
>
>        function durdur() {
>                $this->calisiyorMu=false;
>        }
>
>        function __toString(){
>                return "Bu Araba : ". $this->marka ." Markadir.";
>        }
>
>        function __get($degisken){
>                echo("<br>Talepte Bulunduğun verinin değeri:
> ".$degisken."<br>\n");
>                return $degisken;
>        }
>
>        function __set($degisken,$degeri){
>                echo("<br>Verin olan ".$degisken." e ".$degeri." verisini
> yerleştirdim<br>");
>                $degisken=$degeri;
>        }
>
>        function durum() {
>                return $this->calisiyorMu;
>        }
>
>        function __destruct()
>        {
>                echo "gitttiiiiii gittti gül gibi $this gitti.";
>        }
>
> }
>
> **************************************************************************
> index.php dosya içeriği :
>
> <?php
> function __autoload($class_name) {
>    require_once $class_name . '.php';
> }
>
> echo("yeni arabam :\n<br>");
> $arabam = new Araba("Serçe");
> echo ($arabam." <br>");
>
> echo ("<br> *****************<br>");
> echo ("Çalışıyor mu : <br>");
> echo ($arabam->durum() ? "Çalışıyor : )":"Durmuş :(" );
>
> echo ("<br> *****************<br>");
> $arabam->durdur();
> echo ("Çalışıyor mu : <br>");
> echo ($arabam->durum() ? "Çalışıyor : )":"Durmuş :(" );
>
> echo ("<br> *****************<br>");
> $arabam->calistir();
> echo ("Çalışıyor mu : <br>");
> echo ($arabam->durum() ? "Çalışıyor : )":"Durmuş :(" );
>
> echo ("<br> *****************<br>");
> echo ("get/set overload testim:<br>");
> echo ($arabam->deger1);
> $deneme = $arabam->deger1;
> $arabam->deger1=500;
>
> echo ("<br> *****************<br>");
> $arabam =0;
> echo ("<br> *****************<br>");
>
> ?>
>
>
> ****************************************************************************
> *****
>
> Çıktı :
>
> yeni arabam :
> Bu Araba : Serçe Markadir.
>
> *****************
> Çalışıyor mu :
> Çalışıyor : )
> *****************
> Çalışıyor mu :
> Durmuş :(
> *****************
> Çalışıyor mu :
> Çalışıyor : )
> *****************
> get/set override testim:
> 100
> *****************
> gitttiiiiii gittti gül gibi Bu Araba : Serçe Markadir. gitti.
> *****************
>
>
> burada ki çıktıda get / set override testim kısmında Eksiklikler mevcut
> beklentim şu şekilde çıktı vermesi yönündeydi :
>
> Talepte Bulunduğun verinin değeri: 100
> 100
> Talepte Bulunduğun verinin değeri: 100
> Verin olan 100 e 500 verisini yerleştirdim
>
> fakat bir yerde ben veya php hata yapıyoruz.
> Şimdiden teşekkürler
>
> Saygılarılma
> ömer
>
>
> --
> Ömer Fadıl USTA
> http://www.bilisimlab.com/
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>



-- 
Ömer Fadıl USTA
http://www.bilisimlab.com/
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap