Mis vahe on avalikul, privaatsel ja kaitstud PHP-s?

Mis Vahe On Avalikul Privaatsel Ja Kaitstud Php S



PHP-d kasutatakse laialdaselt dünaamiliste veebisaitide ja veebirakenduste arendamiseks. PHP pakub märksõnu, mida tuntakse kui juurdepääsu modifikaatorid . Juurdepääsu modifikaatori atribuute kasutatakse muutuja, klassi või klassi atribuutidele juurdepääsuks kolmel erineval viisil, nt avalik , privaatne, ja kaitstud . Selles artiklis käsitleme neid juurdepääsu modifikaatoreid ja teeme kindlaks erinevuse nende kolme juurdepääsumuutja vahel PHP programmeerimiskeeles.

Mis on PHP juurdepääsu modifikaatorid?

PHP-s on juurdepääsu modifikaatorid olulised, kuna need annavad kasutajatele võimaluse reguleerida klassi atribuutide ja meetodite nähtavust ning ligipääsetavust. Selle tulemusena pakub see kapseldamist ja andmete turvalisust ning seega on klassi liikmed kaitstud volitamata juurdepääsu või muutmise eest. Samuti muudab see koodi hooldamise ja silumise lihtsamaks.







Juurdepääsu modifikaatorite tüübid

Allpool käsitletakse kolme PHP-s eksisteerivat juurdepääsu modifikaatorit:



  • Avalik: Avalikule meetodile pääsete juurde väljaspool klassi. See tähendab, et mis tahes koodil on juurdepääs avalikule meetodile, seda saab muuta ja seda välja kutsuda.
  • Privaatne: Privaatmeetodile juurdepääs on piiratud klassi endaga. See tähendab, et ühelgi teisel koodil, isegi kui see on alamklass, ei ole lubatud privaatmeetodile juurde pääseda ega privaatväärtust lugeda.
  • Kaitstud: Kaitstud meetod on juurdepääsetav ainult klassi ja sellega seotud klasside sees; seda ei saa kasutada väljaspool neid klasse. Iga lähtekood, mis vajab juurdepääsu klassi eksemplarile, saab lugeda või muuta kaitstud atribuudi andmeid või kutsuda kaitstud funktsiooni.

Erinevus PHP avalike, privaatsete ja kaitstud juurdepääsu modifikaatorite vahel

Kinnisvara Avalik Privaatne Kaitstud
Juurdepääsetavus Need juurdepääsu muutjad on juurdepääsetavad kõikjal, näiteks koodi sees ja väljaspool. Privaatjuurdepääsu spetsifikaadid on juurdepääsetavad ainult klassi piires. See võib olla juurdepääsetav klassi ja sellega seotud (laps)klasside ja meetodite sees.
Paindlikkus Kõige rohkem paindlikkust pakuvad avalikud ressursid, kuna neile pääseb juurde kõikjalt. Kuna need on ainult klassisiseselt juurdepääsetavad, pakuvad need meetodid kõige vähem paindlikkust. Kaitstud meetod pakub mõõdukat paindlikkust, kuna alamklassid pääsevad neile meetoditele juurde.
Kapseldamine Muu kood võib avalikele meetoditele juurde pääseda või neid kapseldada, kuid programmeerijal on selle üle kontroll. Klassi sees on kapseldatud privaatne meetod, mis muudab välise koodi juurdepääsu või värskendamise võimatuks. Selle kapseldamise protsess on sama, mis PHP-s avalikul meetodil.
Turvalisus Avalikud meetodid on kättesaadavad kõikjalt. Seega pakuvad need koodi madalat turvalisuse taset. Maksimaalse turvalisuse taseme tagavad privaatjuurdepääsu modifikaatorid, kuna need sisalduvad täielikult klassis. Kuna neile pääsevad juurde ainult klassi ja selle alamklasside liikmed, pakuvad kaitstud juurdepääsu modifikaatorid mõistlikku turvataset.

Vaatame nende juurdepääsu spetsifikaatide erinevust, kasutades PHP-s lihtsat programminäidet.



Näide: PHP programm privaatse, avaliku ja kaitstud juurdepääsu modifikaatoritega





Järgmine näide näitab erinevust avaliku, privaatse ja kaitstud vahel ühes näidiskoodis:

< ?php
klass MyClass {
avalik $avalik = 'Avalik muutuja. \n ' ; // Juurdepääs kõikjalt
privaatne $privaatne = 'Privaatne muutuja. \n ' ; // Juurdepääs on ainult klassi seest
kaitstud $kaitstud = 'Kaitstud muutuja.' ; // Juurdepääs klassis ja mis tahes alamklassis

avalik funktsiooni getPrivate ( ) {
tagasi $see - > privaatne;
}

avalik funktsiooni saada Kaitstud ( ) {
tagasi $see - > kaitstud;
}
}
$obj = uus MyClass ( ) ;

kaja $obj - > avalik;
kaja $obj - > getPrivate ( ) ;
kaja $obj - > saada Kaitstud ( ) ;
? >



Ülaltoodud programmis määratlesime klassi kui Minu klass avaliku varaga as $avalik millele pääseb ligi kõikjal koodis, eraomandile kui $privaatne ja kaitstud vara nimega $kaitstud , seega ei pääse me privaatsete ja kaitstud spetsifikaatidele otse väljastpoolt klassi juurde. Nagu me kasutasime kahte avalikku meetodit, mida nimetatakse getPrivate() ja getProtected() mis tagastavad vastavalt privaatsete ja kaitstud omaduste muutujate väärtused ning väljund on toodud allpool:

Järeldus

PHP pakub palju funktsioone ja üks neist on märksõnad, mida nimetatakse juurdepääsu modifikaatoriteks. Need juurdepääsu modifikaatorid pakuvad PHP programmi klasside andmetele erinevaid juurdepääsumustreid. Ülaltoodud õpetuses nägime PHP-s pakutavate juurdepääsu modifikaatorite erinevust juurdepääsetavuse, kapseldamise, paindlikkuse ja turvalisuse osas.