Wat is het verschil tussen openbaar, privé en beschermd in PHP

Wat Is Het Verschil Tussen Openbaar Prive En Beschermd In Php



PHP wordt veel gebruikt voor het ontwikkelen van dynamische websites en webapplicaties. PHP biedt trefwoorden die bekend staan ​​als toegangsmodificatoren . De access modifier-eigenschappen worden gebruikt om op drie verschillende manieren toegang te krijgen tot de variabele, klasse of klasse-eigenschappen, zoals openbaar , privaat, En beschermd . In dit artikel bespreken we deze toegangsmodificatoren en bepalen we het verschil tussen deze drie toegangsmodificatoren in de programmeertaal PHP.

Wat zijn Access Modifiers in PHP?

In PHP zijn toegangsmodificaties essentieel omdat ze gebruikers de mogelijkheid geven om zowel de zichtbaarheid als de toegankelijkheid van klasseattributen en methoden te reguleren. Als gevolg hiervan biedt het inkapseling en gegevensbeveiliging, en daarom zijn de klasleden beschermd tegen ongeoorloofde toegang of wijziging. Het maakt ook het onderhoud van code en foutopsporing eenvoudiger.







Soorten toegangsmodificatoren

De drie toegangsmodificatoren die in PHP bestaan, worden hieronder besproken:



  • Openbaar: Je hebt toegang tot een openbare methode van buiten de klas. Dit houdt in dat elke code een openbare methode kan openen, wijzigen en aanroepen.
  • Privaat: Toegang tot de privémethode is beperkt tot de klasse zelf. Dit houdt in dat geen van de andere codes, zelfs als het een onderliggende klasse is, toegang heeft tot een private methode of de private waarde mag lezen.
  • beschermd: Een beschermde methode is alleen toegankelijk binnen een klasse en klassen die daarmee verband houden; het kan niet buiten die klassen worden gebruikt. Elke broncode die toegang nodig heeft tot de klasse-instantie kan de gegevens van een beschermde eigenschap lezen of wijzigen of een beschermde functie aanroepen.

Verschil tussen openbare, privé- en beschermde toegangsmodificaties in PHP

Eigendom Openbaar Privaat Beschermd
Toegankelijkheid Deze toegangsmodificatoren kunnen overal toegankelijk zijn, zowel binnen als buiten de code. Persoonlijke toegangsspecificaties zijn alleen toegankelijk binnen de klasse. Het kan toegankelijk zijn binnen de klas en de bijbehorende (onderliggende) klassen en methoden.
Flexibiliteit De meeste flexibiliteit wordt geboden door openbare middelen, aangezien deze overal toegankelijk zijn. Omdat ze exclusief toegankelijk zijn binnen de klas, bieden deze methoden de minste flexibiliteit. De beschermde methode biedt matige flexibiliteit omdat onderliggende klassen toegang hebben tot deze methoden.
Inkapseling Andere code kan openbare methoden openen of inkapselen, maar de programmeur heeft hier controle over. Een privémethode is ingekapseld in de klasse, waardoor het voor externe code onmogelijk is om ze te openen of bij te werken. Het inkapselingsproces is hetzelfde als de openbare methode in PHP.
Beveiliging Openbare methoden zijn overal toegankelijk. Ze bieden dus een laag beveiligingsniveau in de code. Het maximale beveiligingsniveau wordt geboden door modifiers voor privétoegang, omdat deze volledig binnen de klasse zijn opgenomen. Aangezien ze alleen toegankelijk zijn voor leden van de klasse en zijn subklassen, bieden beschermde toegangsmodificaties een redelijk beveiligingsniveau.

Laten we eens kijken wat het verschil is tussen deze toegangsspecificaties aan de hand van een eenvoudig programmavoorbeeld in PHP.



Voorbeeld: PHP-programma met Private, Public en Protected Access Modifiers





Het volgende voorbeeld toont het verschil tussen openbaar, privé en beschermd in één voorbeeldcode:

< ?php
klasse MijnKlasse {
openbaar $openbaar = 'Openbare variabele. \N ' ; // Overal toegankelijk
privaat $privé = 'Privé-variabele. \N ' ; // Alleen toegankelijk vanuit de klas
beschermd $beschermd = 'Beveiligde variabele.' ; // Is toegankelijk binnen de klas en eventuele subklassen

openbaar functie getPrivate ( ) {
opbrengst $ dit - > privaat;
}

openbaar functie word beschermd ( ) {
opbrengst $ dit - > beschermd;
}
}
$obj = nieuwe MijnKlasse ( ) ;

echo $obj - > openbaar;
echo $obj - > getPrivate ( ) ;
echo $obj - > word beschermd ( ) ;
? >



In het bovenstaande programma hebben we een klasse gedefinieerd als Mijn klas met een openbaar bezit als $openbaar die overal in code toegang kon krijgen, een privébezit als $privé , en een beschermd eigendom genoemd $beschermd , daarom hebben we geen directe toegang tot privé- en beschermde specificeerders van buiten de klasse. Omdat we twee openbare methoden gebruikten genaamd getPrivate() En getProtected() die respectievelijk de waarden van de privé- en beschermde eigenschappenvariabelen retourneren, en de uitvoer wordt hieronder gegeven:

Conclusie

PHP biedt veel functionaliteiten en een daarvan zijn de trefwoorden die toegangsmodifiers worden genoemd. Deze toegangsmodificatoren bieden verschillende toegangspatronen tot de gegevens van klassen in het PHP-programma. In de bovenstaande tutorial hebben we het verschil gezien tussen toegangsmodificatoren in termen van toegankelijkheid, inkapseling, flexibiliteit en beveiliging die worden aangeboden in PHP.