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
