Viditelnost proměnných, zejména vlastností a metod v objektově orientovaném programování, je klíčovým konceptem, který je pro každého vývojáře nesmírně důležitý. Zejména v PHP určují modifikátory viditelnosti public, private a protected, kdo má přístup k určitým vlastnostem a metodám. Tyto koncepty pomáhají implementovat kapsulaci dat, což činí objektově orientované programy robustnějšími a snadněji udržovatelnými. V této příručce se naučíš, jak se tyto modifikátory používají a jaký vliv mohou mít na strukturu tvého programování.
Nejdůležitější poznatky
- public: Vlastnosti jsou přístupné odkudkoli.
- private: Vlastnosti jsou přístupné pouze uvnitř samotné třídy.
- protected: Vlastnosti jsou přístupné uvnitř třídy a v odvozených třídách.
Průvodce krok za krokem
1. Vytvoření jednoduché třídy s veřejnou vlastností
Na úvod vytvoříme třídu Auto, ve které definujeme veřejnou vlastnost nazvanou Rychlost. To ti poskytne jasný obraz o tom, jak můžeš na tuto vlastnost přistupovat zvenčí.

Nyní můžeš vytvořit objekt této třídy:

Když nyní nastavíš rychlost auta na 30, 50 nebo dokonce 130, nemáš žádná omezení - to je síla veřejné viditelnosti.
2. Zavedení maximální rychlosti s privátní vlastností
Nyní přidáme privátní vlastnost maximální_rychlost a změníme metodu tak, aby nastavovala pouze povolené rychlosti. Tímto způsobem můžeš zajistit, že budou přiřazeny pouze platné hodnoty.
Pomocí této metody můžeš nastavovat rychlost a zároveň zajistit, že nedojde k chybě způsobené příliš vysokými hodnotami.

3. Použití getter a setter metod pro privátní vlastnosti
Jelikož je maximální_rychlost privátní, můžeš k ní přistupovat pouze prostřednictvím metod uvnitř třídy. Následující příklad ukazuje, jak implementovat getter a setter metody.

Pomocí těchto metod dosáhneš kapsulace a vlivu na vlastnosti zvenčí.

4. Pochopení protected modifikátoru
Nyní se podíváme na modifikátor protected. Tento modifikátor poskytuje třídám, které dědí z jiných tříd, přístup k určitým vlastnostem. To znamená, že odvozené třídy mohou i nadále používat nebo přepisovat konkrétní metodu nebo vlastnost.

V tomto případě má závodní auto přístup k chráněné vlastnosti, zatímco externí třídy k ní přístup nemají. To umožňuje zakódovat cílené chování pro odvozené třídy.
5. Rozhodnutí o viditelnosti
Důležité rozhodnutí, které musíš učinit, se týká viditelnosti tvých vlastností. Obecně bys měl používat private, pokud není zřejmé, že vlastnost bude potřebná v rámci dědictví. V takovém případě zvol protected.

Při tom měj na paměti, že pokud se nacházíš ve fázi údržby nebo pracuješ na nové funkci, můžeš své kontrolní mechanismy později změnit, pokud to bude nezbytné.
Shrnutí – Viditelnost vlastností: public, private a protected v PHP
Viditelnost vlastností v PHP je zásadní pro pochopení kapsulace dat a objektově orientovaného programování. S modifikátory public, private a protected můžeš dosáhnout přesnosti a kontroly nad přístupem k vlastnostem a metodám ve svých třídách. Správným použitím těchto principů výrazně zlepšíš udržovatelnost a bezpečnost svého kódu.
Často kladené otázky
Co znamená public v PHP?public znamená, že vlastnost nebo metoda je přístupná odkudkoli.
Co znamená private v PHP?private znamená, že vlastnost nebo metoda může být volána pouze z vlastní třídy.
Co znamená protected v PHP?protected znamená, že vlastnost nebo metoda může být volána z vlastní třídy a z odvozených tříd.
Kdy bych měl použít private?Měl bys používat standardně private, aby ses maximalizoval viditelnost a kontrolu.
Kdy mohu přejít na protected?Přejdi na protected, pokud je vlastnost vyžadována v odvozených třídách a chceš zabránit přístupu zvenčí.