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