Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Co powinno być public, co private a co protected?
Forum PHP.pl > Forum > Przedszkole
uirapuru
Nie wiem czy dobrze rozumuję, pierwszy raz pisze opp php (powiedzmy).

robię sobie klase. ma ona jakieś tam wlaściwości i metody. powiedzmy user, ktory jest wczytywany z bazy - jakie przyjąć kryteria co do tego, ktora ze zmiennych powinna być typu private, public, czy protected?

jeśli mam profil->imie_i_nazwisko to czy lepiej to zostawić public i zmieniać jej wartość bezposrednio czy lepiej bawić się dla każdej zmiennej w metody setNazwisko($nazwisko) itd?
kajzur
Public - powinny być te dane, które chcesz wyświetlić na stronie, np danie imienia i nazwiska na stronie w np. panelu nie jest złym pomyśłem, więc można dać public. Private to dane, które nie koniecznie powinny być pokazane, ale są ważne dla całego procesu działania systemu, no nie wiem, może ID? Co do protected, są to takie dane które będą używane tylko w jednej klasie, i w klasach dziedziczących. Trudno podać mi teraz przykład. Ale wiesz, to wychodzi w praniu.

Pozdro winksmiley.jpg
korkie
"Public - powinny być te dane, które chcesz wyświetlić na stronie, np danie imienia i nazwiska na stronie w np. panelu nie jest złym pomyśłem, więc można dać public. Private to dane, które nie koniecznie powinny być pokazane, ale są ważne dla całego procesu działania systemu, no nie wiem, może ID? Co do protected, są to takie dane które będą używane tylko w jednej klasie, i w klasach dziedziczących. Trudno podać mi teraz przykład. Ale wiesz, to wychodzi w praniu. "

co questionmark.gif questionmark.gif questionmark.gif ?

public, protected i private to modyfikatory dostępu - kontrolują dostęp do właściwości klasy.
Wszystkie właściwości można wyświetlać, ale tylko do tych co mają modyfikator public masz dostęp spoza klasy w postaci $obiekt->właściwość.
Protected i private wymagają innego dostępu:

class A {
private $pri="coś";


public function a()
{

echo $this->pri;
}
}
$x = new A; echo $x->a();

Protected i private nie dają bezpośredniego dostępu spoza klasy, przy czym właściwości private nie można dziedziczyć a protected tak.
Tu nie chodzi o to, że coś się nazywa public, bo ma być wyświetlone na stronie.
Metody dostępu służą do kontroli dostępu i to od ciebie zależy czy taka ci jest potrzebna.
Sa skrypty na kilka stron A4 używające wyłącznie public, a są i na trzy linijki używające tylko private, np. klasyczny singleton, gdzie chcemy aby powstał tylko i wyłącznie jeden obiekt klasy.
To jakich modyfikatorów powinieneś użyć zależy od przeznaczenia web-projektu i sposobu jego tworzenia (jedna osoba / kilka osób).
Tu w grę wchodzi wcześniejsze zrobienie planu w języku UML.
Bez zrozumienia OOP (a do tego trzeba przestudiować trochę przykładów, szczególnie wzorców projektowych) skrypty wygladają jak obiektowe tylko z pisowni,
w rzeczywistości są tam zwykłe funkcje ubrane w 'skórkę obiektową'.
Myślę, że jeśli sam robisz prosty skrypt i nie korzystasz ze wzorców projektowych typu: fabryka, singleton, obserwator itp. to całkowicie ci wystarczy zwykły dostęp typu public,
no chyba, że chcesz sobie poćwiczyć zastosowanie modyfikatorów dostępu.
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.