Hvad er forskellen mellem offentlig, privat og beskyttet i PHP

Hvad Er Forskellen Mellem Offentlig Privat Og Beskyttet I Php



PHP er meget brugt til at udvikle dynamiske hjemmesider og webapplikationer. PHP giver søgeord kendt som adgangsmodifikatorer . Adgangsmodifikatoregenskaberne bruges til at få adgang til variable-, klasse- eller klasseegenskaberne på tre forskellige måder, som f.eks offentlig , privat, og beskyttet . I denne artikel vil vi diskutere disse adgangsmodifikatorer og bestemme forskellen mellem disse tre adgangsmodifikatorer i PHP-programmeringssproget.

Hvad er adgangsmodifikatorer i PHP?

I PHP er adgangsmodifikatorer essentielle, fordi de giver brugerne mulighed for at regulere synligheden samt tilgængeligheden af ​​klasseattributter og -metoder. Som et resultat af dette giver det indkapsling og datasikkerhed, og dermed er klassemedlemmerne beskyttet mod uautoriseret adgang eller ændring. Det gør også vedligeholdelsen af ​​kode og fejlretning lettere.







Typer af adgangsmodifikatorer

De tre adgangsmodifikatorer, der findes i PHP, diskuteres nedenfor:



  • Offentlig: Du kan få adgang til en offentlig metode uden for klassen. Dette indebærer, at enhver kode kan få adgang til, ændre og påberåbe en offentlig metode.
  • Privat: For at få adgang til den private metode er begrænset til selve klassen. Dette indebærer, at ingen af ​​de andre koder, selvom det er en børneklasse, har tilladelse til at få adgang til en privat metode eller læse den private værdi.
  • Beskyttet: En beskyttet metode er kun tilgængelig i en klasse og klasser, der er relateret til den; det kan ikke bruges uden for disse klasser. Enhver kildekode, der skal have adgang til klasseforekomsten, kan læse eller ændre dataene for en beskyttet ejendom eller påberåbe en beskyttet funktion.

Forskellen mellem offentlige, private og beskyttede adgangsmodifikatorer i PHP

Ejendom Offentlig Privat Beskyttet
Tilgængelighed Disse adgangsmodifikatorer kan være tilgængelige overalt, såsom inden for og uden for koden. Privat adgangsspecifikationer er kun tilgængelige inden for klassen. Det kunne være tilgængeligt i klassen og dens relaterede (barne) klasser og metoder.
Fleksibilitet Den største fleksibilitet tilbydes af offentlige ressourcer, da de kan tilgås hvor som helst. Da de udelukkende er tilgængelige inden for klassen, tilbyder disse metoder den mindste fleksibilitet. Den beskyttede metode giver moderat fleksibilitet, da børneklasser kan få adgang til disse metoder.
Indkapsling Anden kode kan få adgang til eller indkapsle offentlige metoder, men programmøren har kontrol over dette. En privat metode er indkapslet inde i klassen, hvilket gør det umuligt for ekstern kode at få adgang til eller opdatere dem. Dens indkapslingsproces er den samme som den offentlige metode i PHP.
Sikkerhed Offentlige metoder er tilgængelige fra hvor som helst. Så de giver et lavt sikkerhedsniveau i koden. Det maksimale sikkerhedsniveau leveres af private adgangsmodifikatorer, fordi de er fuldstændig indeholdt i klassen. Da de kun kan tilgås af medlemmer af klassen og dens underklasser, tilbyder beskyttede adgangsmodifikatorer et rimeligt sikkerhedsniveau.

Lad os se forskellen mellem disse adgangsspecifikationer ved hjælp af et simpelt programeksempel i PHP.



Eksempel: PHP-program med modifikatorer for privat, offentlig og beskyttet adgang





Følgende eksempel viser forskellen mellem offentlig, privat og beskyttet i en eksempelkode:

< ?php
klasse MyClass {
offentlig $offentlig = 'Offentlig-variabel. \n ' ; // Kan tilgås fra hvor som helst
privat $privat = 'Privat-variabel. \n ' ; // Kan kun tilgås fra klassen
beskyttet $beskyttet = 'Beskyttet-variabel.' ; // Kan tilgås inden for klassen og eventuelle underklasser

offentlig fungere getPrivat ( ) {
Vend tilbage $dette - > privat;
}

offentlig fungere getProtected ( ) {
Vend tilbage $dette - > beskyttet;
}
}
$obj = ny MyClass ( ) ;

ekko $obj - > offentlig;
ekko $obj - > getPrivat ( ) ;
ekko $obj - > getProtected ( ) ;
? >



I ovenstående program definerede vi en klasse som Min klasse med en offentlig ejendom som $offentlig som kunne få adgang overalt i kode, en privat ejendom som $privat , og en fredet ejendom kaldet $beskyttet , derfor kan vi ikke få adgang til private og beskyttede specifikatorer direkte uden for klassen. Som vi brugte to offentlige metoder kaldet getPrivate() og getProtected() der returnerer værdierne af henholdsvis de private og beskyttede egenskabsvariabler, og outputtet er givet nedenfor:

Konklusion

PHP byder på mange funktioner, og en af ​​dem er de nøgleord, der kaldes adgangsmodifikatorer. Disse adgangsmodifikatorer giver forskellige adgangsmønstre til data for klasser i PHP-programmet. I ovenstående vejledning har vi set forskellen mellem adgangsmodifikatorer med hensyn til tilgængelighed, indkapsling, fleksibilitet og sikkerhed, der tilbydes i PHP.