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

Cevap