malesef işe yaramadı.
sanki __set ve __get hiç override olmuyor gibi

2009/8/27 Mecid UYSAL <[email protected]>:
> Kusura bakma esittire 2 defa basmisim ;)))
>
>
>        public function __set($degisken, $ degeri) {
>                $this->$degisken = $degeri;
>        }
>
>        public function __get($degisken) {
>                return $this->$degisken;
>        }
> Seklinde deneyiniz.
>
>
> Bu sekilde deneyiniz. PHP de classlarda degiskenlere erisirken
> "$this->degisken" seklinde erisirsiniz.
>        Class disindanda;
>                $obje = new Class;
>                $obje->degisken;
> Seklinde erisirsiniz.
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Ömer F.
> USTA
> Sent: Thursday, August 27, 2009 8:49 AM
> To: Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
> Subject: [Linux-programlama] Re: [php (5.3.0)] Override problemim ( __get /
> __set )
>
> 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
>
> _______________________________________________
> 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