Quina diferència hi ha entre públic, privat i protegit a PHP

Quina Diferencia Hi Ha Entre Public Privat I Protegit A Php



PHP s'utilitza àmpliament per desenvolupar llocs web dinàmics i aplicacions web. PHP proporciona paraules clau conegudes com modificadors d'accés . Les propietats del modificador d'accés s'utilitzen per accedir a les propietats de la variable, classe o classe de tres maneres diferents, com ara públic , privat, i protegit . En aquest article, parlarem d'aquests modificadors d'accés i determinarem la diferència entre aquests tres modificadors d'accés en el llenguatge de programació PHP.

Què són els modificadors d'accés a PHP?

En PHP, els modificadors d'accés són essencials perquè donen als usuaris la possibilitat de regular la visibilitat així com l'accessibilitat dels atributs i mètodes de classe. Com a resultat d'això, proporciona encapsulament i seguretat de dades i, per tant, els membres de la classe estan protegits d'accés o alteració no autoritzats. A més, facilita el manteniment del codi i la depuració.







Tipus de modificadors d'accés

Els tres modificadors d'accés que existeixen a PHP es comenten a continuació:



  • Públic: Podeu accedir a un mètode públic des de fora de la classe. Això implica que qualsevol codi pot accedir, canviar i invocar un mètode públic.
  • Privat: Per accedir al mètode privat està restringit a la pròpia classe. Això implica que cap dels altres codis, fins i tot si es tracta d'una classe secundària, no té permís per accedir a un mètode privat ni llegir el valor privat.
  • Protegit: Un mètode protegit només és accessible dins d'una classe i classes que hi estan relacionades; no es pot utilitzar fora d'aquestes classes. Qualsevol codi font que necessiti accedir a la instància de classe pot llegir o alterar les dades d'una propietat protegida o invocar una funció protegida.

Diferència entre modificadors d'accés públic, privat i protegit a PHP

Propietat Públic Privat Protegit
Accessibilitat Aquests modificadors d'accés es poden accedir a qualsevol lloc, com ara dins i fora del codi. Els especificadors d'accés privat només són accessibles dins de la classe. Podria ser accessible dins de la classe i les seves classes i mètodes relacionats (fills).
Flexibilitat La major flexibilitat l'ofereixen els recursos públics, ja que s'hi pot accedir des de qualsevol lloc. Com que són accessibles exclusivament dins de la classe, aquests mètodes ofereixen la menor flexibilitat. El mètode protegit proporciona una flexibilitat moderada, ja que les classes fills poden accedir a aquests mètodes.
Encapsulació Un altre codi pot accedir o encapsular mètodes públics, però el programador té el control sobre això. Un mètode privat està encapsulat dins de la classe, cosa que fa impossible que el codi extern hi pugui accedir o actualitzar. El seu procés d'encapsulació és el mateix que el mètode públic en PHP.
Seguretat Els mètodes públics són accessibles des de qualsevol lloc. Per tant, proporcionen un baix nivell de seguretat al codi. El màxim nivell de seguretat el proporcionen els modificadors d'accés privat perquè estan totalment continguts dins de la classe. Com que només poden accedir-hi els membres de la classe i les seves subclasses, els modificadors d'accés protegit ofereixen un nivell raonable de seguretat.

Vegem la diferència entre aquests especificadors d'accés mitjançant un exemple de programa senzill en PHP.



Exemple: Programa PHP amb modificadors d'accés privat, públic i protegit





L'exemple següent mostra la diferència entre públic, privat i protegit en un exemple de codi:

< ?php
classe MyClass {
públic $públic = 'Variable pública. \n ' ; // Es pot accedir des de qualsevol lloc
privat $privada = 'Variable privada. \n ' ; // Només es pot accedir des de dins de la classe
protegit $protegit = 'Variable protegida'. ; // S'hi pot accedir dins de la classe i de qualsevol subclasse

públic funció getPrivate ( ) {
tornar $això - > privat;
}

públic funció getProtected ( ) {
tornar $això - > protegit;
}
}
$obj = nou MyClass ( ) ;

eco $obj - > públic;
eco $obj - > getPrivate ( ) ;
eco $obj - > getProtected ( ) ;
? >



Al programa anterior, hem definit una classe com La meva classe amb una propietat pública com $públic que podria accedir a qualsevol lloc del codi, una propietat privada com $privada , i una propietat protegida anomenada $protegit , per tant, no podem accedir als especificadors privats i protegits directament des de fora de la classe. Com hem utilitzat dos mètodes públics anomenats getPrivate() i getProtected() que retornen els valors de les variables de propietats privades i protegides, respectivament, i la sortida es dóna a continuació:

Conclusió

PHP ofereix moltes funcionalitats i una d'elles són les paraules clau anomenades modificadors d'accés. Aquests modificadors d'accés proporcionen diferents patrons d'accés a les dades de les classes del programa PHP. Al tutorial anterior, hem vist la diferència entre els modificadors d'accés en termes d'accessibilitat, encapsulació, flexibilitat i seguretat que s'ofereixen a PHP.