Care este diferența dintre public, privat și protejat în PHP

Care Este Diferenta Dintre Public Privat Si Protejat In Php



PHP este utilizat pe scară largă pentru dezvoltarea de site-uri web dinamice și aplicații web. PHP oferă cuvinte cheie cunoscute ca modificatori de acces . Proprietățile modificatorului de acces sunt utilizate pentru a accesa proprietățile variabilei, clasei sau clasei în trei moduri diferite, cum ar fi public , privat, și protejat . În acest articol, vom discuta despre acești modificatori de acces și vom determina diferența dintre acești trei modificatori de acces în limbajul de programare PHP.

Ce sunt modificatorii de acces în PHP?

În PHP, modificatorii de acces sunt esențiali deoarece oferă utilizatorilor posibilitatea de a regla vizibilitatea, precum și accesibilitatea atributelor și metodelor clasei. Ca rezultat, oferă încapsulare și securitate a datelor și, prin urmare, membrii clasei sunt protejați împotriva accesului sau modificării neautorizate. De asemenea, facilitează întreținerea codului și depanarea.







Tipuri de modificatori de acces

Cei trei modificatori de acces care există în PHP sunt discutați mai jos:



  • Public: Puteți accesa o metodă publică din afara clasei. Aceasta implică faptul că orice cod poate accesa, modifica și invoca o metodă publică.
  • Privat: Pentru a accesa metoda privată este restricționat la clasa în sine. Acest lucru implică faptul că niciunul dintre celelalte coduri, chiar dacă este o clasă copil, nu are permisiunea de a accesa o metodă privată sau de a citi valoarea privată.
  • Protejat: O metodă protejată este accesibilă numai în interiorul unei clase și claselor care sunt legate de aceasta; nu poate fi folosit în afara acelor clase. Orice cod sursă care trebuie să acceseze instanța clasei poate citi sau modifica datele unei proprietăți protejate sau poate invoca o funcție protejată.

Diferența dintre modificatorii de acces public, privat și protejat în PHP

Proprietate Public Privat Protejat
Accesibilitate Acești modificatori de acces pot fi accesibili oriunde, cum ar fi în interiorul și în afara codului. Specificatorii de acces privat sunt accesibili numai în cadrul clasei. Ar putea fi accesibil în interiorul clasei și a claselor (copil) și a metodelor acesteia.
Flexibilitate Cea mai mare flexibilitate este oferită de resursele publice, deoarece acestea pot fi accesate de oriunde. Deoarece sunt accesibile exclusiv în cadrul clasei, aceste metode oferă cea mai mică flexibilitate. Metoda protejată oferă o flexibilitate moderată, deoarece clasele copil pot accesa aceste metode.
Încapsulare Alt cod poate accesa sau încapsulează metode publice, dar programatorul are controlul asupra acestui lucru. O metodă privată este încapsulată în interiorul clasei, făcând imposibil accesul sau actualizarea codului extern. Procesul său de încapsulare este același cu metoda publică în PHP.
Securitate Metodele publice sunt accesibile de oriunde. Deci, acestea oferă un nivel scăzut de securitate în cod. Nivelul maxim de securitate este asigurat de modificatorii de acces privat, deoarece acestea sunt total conținute în clasă. Deoarece pot fi accesate numai de membrii clasei și ai subclaselor sale, modificatorii de acces protejat oferă un nivel rezonabil de securitate.

Să vedem diferența dintre acești specificatori de acces folosind un exemplu de program simplu în PHP.



Exemplu: Program PHP cu modificatori de acces privat, public și protejat





Următorul exemplu demonstrează diferența dintre public, privat și protejat într-un exemplu de cod:

< ?php
clasa MyClass {
public $public = „Public-variabilă. \n ' ; // Poate fi accesat de oriunde
privat $privat = „Variabilă privată. \n ' ; // Poate fi accesat numai din cadrul clasei
protejat $protejat = „Variabilă protejată”. ; // Poate fi accesat în cadrul clasei și în orice subclase

public funcţie getPrivate ( ) {
întoarcere $aceasta - > privat;
}

public funcţie getProtected ( ) {
întoarcere $aceasta - > protejat;
}
}
$obj = noua MyClass ( ) ;

ecou $obj - > public;
ecou $obj - > getPrivate ( ) ;
ecou $obj - > getProtected ( ) ;
? >



În programul de mai sus, am definit o clasă ca Clasa mea cu o proprietate publică ca $public care ar putea accesa oriunde în cod, o proprietate privată ca $privat , și o proprietate protejată numită $protejat , prin urmare nu putem accesa specificatorii privați și protejați direct din afara clasei. După cum am folosit două metode publice numite getPrivate() și getProtected() care returnează valorile variabilelor proprietăților private și, respectiv, protejate, iar rezultatul este dat mai jos:

Concluzie

PHP oferă multe funcționalități și una dintre ele este cuvintele cheie numite modificatori de acces. Acești modificatori de acces oferă diferite modele de acces la datele claselor din programul PHP. În tutorialul de mai sus, am văzut diferența dintre modificatorii de acces în ceea ce privește accesibilitatea, încapsularea, flexibilitatea și securitatea care sunt oferite în PHP.