Promocja językowa LINGO

Dziedziczenie

Jeśli masz problem z dynamicznym generowaniem stron w PHP, tutaj możesz oczekiwać pomocy.

Moderator: Moderatorzy

Dziedziczenie

Postprzez GaWroN Śr cze 17, 2009 02:31 am

Kod: Zaznacz cały
<?php
class moja
{
   private $z;
   function __construct()
   {
      $this->z=0;
   }
   function __get($nazwa)
   {
      return $this->$nazwa."<br>";
   }
   function __set($nazwa,$wartosc)
   {
      if($nazwa=='z' && $wartosc >10)
         $this->$nazwa=10;
      else
         $this->$nazwa=$wartosc;
   }   
}

class moja2 extends moja
{
   private $q;
   function __construct()
   {
      $this->q=0;
   }
   function __set($nazwa,$wartosc)
   {
      if($nazwa=='q' && $wartosc >10)
         $this->$nazwa=100;
      else
         $this->$nazwa=$wartosc;
   }
}
$k = new moja;
echo $k->z;
$k->z=12;
echo $k->z;

echo "<br><br>";

$k2 = new moja2;
echo $k2->q;
$k2->q=12;
echo $k2->q;
?>

Witam
Mam pytanie co do dziedziczenia. W kodzie wyzej i w klasie moja zmienna $z jest prywatna i metody __get i __set dzialaja ok. W klasie moja2 przy prywatnej zmiennej $q juz jest lipa, czemu te funkcje nie dzialaja ? W efekcie operujac na zmiennych klasy moja2 nic sie nie wyswietli. Ale po zmianie $q na protected juz dziala wszystko ok. Czy moglby mi ktos wytlumaczyc dlatego tak sie dzieje ?
GaWroN
początkujący
początkujący
 
Posty: 123
Dołączył(a): Śr lis 15, 2006 18:06 pm

Powrót do PHP

Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 0 gości

cron
ręceprecz odtybetu | Programista PHP | Pozycjonowanie www | Seo link directory | Pozycjonowanie Częstochowa | wizy do rosji | wizy do uzbekistanu