Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmienna protected
Forum PHP.pl > Forum > Przedszkole
michail_w
Witam, mam sobie taką oto klasę:
  1. class Grid
  2. {
  3. const DEFAULT_GRID_PAGE_SIZE = 10;
  4. protected $paginator = null;
  5. public function __construct($data){
  6. $this->paginator=new Zend_Paginator($data)
  7. }
  8. }

Oczywiście klasa jest bardziej rozbudowana.

Teraz z zewnątrz wywołuję coś takiego:
  1. $list=new Grid($dane);
  2. $result=$list->paginator->getCurrentItem();

To co jest dla mnie zaskoczeniem, że kod się wykonuje, pomimo że zmienna paginator jest protected i zwraca wynik. Ktoś jest w stanie mi wytłumaczyć dlaczego?
Crozin
Kod ten się nie wykona - tutaj potwierdzenie na żywo: http://ideone.com/M7rMH
Co innego gdy kod jest jednak umieszczony wewnątrz klasy Grid, wtedy zadziała, ponieważ kod jest w zasięgu "protected" - http://ideone.com/fA64A
michail_w
Ok, wiem że to niewiarygodne, ale to działa. Nie chcę żeby tak było.
Gdzie mogę szukać przyczyn?
Crozin
Ale co działa? Nic w tej kwestii nie zmienisz - tak jest zaprojektowany język i tyle.
Mephistofeles
Działa, czy tylko nie wyrzuca błędów? Bo jak to drugie to włącz wyświetlanie tongue.gif.
irmidjusz
może po prostu w tej klasie jest też metoda __get() tongue.gif
michail_w
irmidjusz ma rację, jest __get(). Sory za kłopot.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.