Jaka jest różnica między publicznym, prywatnym i chronionym w PHP

Jaka Jest Roznica Miedzy Publicznym Prywatnym I Chronionym W Php



PHP jest szeroko stosowany do tworzenia dynamicznych stron internetowych i aplikacji internetowych. PHP zapewnia słowa kluczowe znane jako modyfikatory dostępu . Właściwości modyfikatora dostępu służą do uzyskiwania dostępu do właściwości zmiennej, klasy lub klasy na trzy różne sposoby, na przykład publiczny , prywatny, I chroniony . W tym artykule omówimy te modyfikatory dostępu i określimy różnicę między tymi trzema modyfikatorami dostępu w języku programowania PHP.

Czym są modyfikatory dostępu w PHP?

W PHP modyfikatory dostępu są niezbędne, ponieważ dają użytkownikom możliwość regulowania widoczności, a także dostępności atrybutów i metod klas. W rezultacie zapewnia enkapsulację i bezpieczeństwo danych, a tym samym członkowie klasy są chronieni przed nieautoryzowanym dostępem lub zmianą. Ponadto ułatwia konserwację kodu i debugowanie.







Rodzaje modyfikatorów dostępu

Poniżej omówiono trzy modyfikatory dostępu, które istnieją w PHP:



  • Publiczny: Dostęp do metody publicznej można uzyskać spoza klasy. Oznacza to, że każdy kod może uzyskiwać dostęp, zmieniać i wywoływać metodę publiczną.
  • Prywatny: Dostęp do metody prywatnej jest ograniczony do samej klasy. Oznacza to, że żaden inny kod, nawet jeśli jest to klasa potomna, nie ma dostępu do metody prywatnej ani nie może odczytać wartości prywatnej.
  • Chroniony: Metoda chroniona jest dostępna tylko wewnątrz klasy i klas, które są z nią powiązane; nie może być używany poza tymi klasami. Każdy kod źródłowy, który musi uzyskać dostęp do instancji klasy, może odczytywać lub zmieniać dane chronionej właściwości lub wywoływać chronioną funkcję.

Różnica między publicznymi, prywatnymi i chronionymi modyfikatorami dostępu w PHP

Nieruchomość Publiczny Prywatny Chroniony
Dostępność Te modyfikatory dostępu mogą być dostępne w dowolnym miejscu, na przykład wewnątrz i na zewnątrz kodu. Specyfikatory dostępu prywatnego są dostępne tylko w obrębie klasy. Może być dostępny wewnątrz klasy i jej powiązanych (podrzędnych) klas i metod.
Elastyczność Największą elastyczność oferują zasoby publiczne, ponieważ można uzyskać do nich dostęp z dowolnego miejsca. Ponieważ są one dostępne wyłącznie w ramach klasy, metody te oferują najmniejszą elastyczność. Metoda chroniona zapewnia umiarkowaną elastyczność, ponieważ klasy podrzędne mogą uzyskiwać dostęp do tych metod.
Kapsułkowanie Inny kod może uzyskiwać dostęp do metod publicznych lub je enkapsulować, ale programista ma nad tym kontrolę. Prywatna metoda jest zamknięta w klasie, co uniemożliwia zewnętrznemu kodowi dostęp do nich lub ich aktualizację. Jej proces enkapsulacji jest taki sam, jak metoda publiczna w PHP.
Bezpieczeństwo Metody publiczne są dostępne z dowolnego miejsca. Zapewniają więc niski poziom bezpieczeństwa w kodzie. Maksymalny poziom bezpieczeństwa zapewniają prywatne modyfikatory dostępu, ponieważ są one całkowicie zawarte w klasie. Ponieważ dostęp do nich mają tylko członkowie klasy i jej podklas, chronione modyfikatory dostępu zapewniają rozsądny poziom bezpieczeństwa.

Zobaczmy różnicę między tymi specyfikatorami dostępu na prostym przykładzie programu w PHP.



Przykład: program PHP z modyfikatorami dostępu prywatnego, publicznego i chronionego





Poniższy przykład ilustruje różnicę między publicznym, prywatnym i chronionym w jednym przykładowym kodzie:

< php
klasa MojaKlasa {
publiczny $publiczne = „Zmienna publiczna. \N ' ; // Można uzyskać dostęp z dowolnego miejsca
prywatny $prywatny = „Prywatna zmienna. \N ' ; // Można uzyskać do niego dostęp tylko z poziomu klasy
chroniony $chroniony = „Zmienna chroniona”. ; // Można uzyskać dostęp w obrębie klasy i dowolnych podklas

publiczny funkcjonować getPrivate ( ) {
powrót $to - > prywatny;
}

publiczny funkcjonować uzyskać ochronę ( ) {
powrót $to - > chroniony;
}
}
$obj = nowa MojaKlasa ( ) ;

Echo $obj - > publiczny;
Echo $obj - > getPrivate ( ) ;
Echo $obj - > uzyskać ochronę ( ) ;
? >



W powyższym programie zdefiniowaliśmy klasę jako Moja klasa z własnością publiczną, tj $publiczne który mógłby uzyskać dostęp do dowolnego miejsca w kodzie, własność prywatna jako $prywatny , oraz obiekt chroniony tzw $chroniony , stąd nie możemy uzyskać dostępu do specyfikatorów prywatnych i chronionych bezpośrednio spoza klasy. Ponieważ użyliśmy dwóch publicznych metod o nazwie getPrivate() I getProtected() które zwracają odpowiednio wartości zmiennych właściwości prywatnych i chronionych, a dane wyjściowe podano poniżej:

Wniosek

PHP oferuje wiele funkcjonalności, a jedną z nich są słowa kluczowe zwane modyfikatorami dostępu. Te modyfikatory dostępu zapewniają różne wzorce dostępu do danych klas w programie PHP. W powyższym samouczku widzieliśmy różnicę między modyfikatorami dostępu pod względem dostępności, hermetyzacji, elastyczności i bezpieczeństwa, które są oferowane w PHP.