Inleiding tot toegangsmodificaties in PHP

Toegangsmodificator is een manier waarmee we bereikbaarheid en rechten voor de variabele van andere identificatiegegevens in PHP kunnen instellen. PHP ondersteunt verschillende sleutelwoorden om elke variabele toegang te geven tot elke variabele en de identificatiegegevens. We kunnen deze trefwoorden toewijzen aan de klasse, functie of ID's. Deze trefwoorden - openbaar, privé, beschermd, abstract, definitief, enz.

Wanneer Access Modifiers gebruiken in PHP?

PHP heeft enkele beperkingen op zijn toegangsmodificator, in tegenstelling tot Java. We kunnen niet alle PHP-toegangsmodificatoren gebruiken op klassenniveau, functieniveau en identificatieniveau. We kunnen deze toegangsmodificatoren gebruiken volgens onze zakelijke behoefte om toestemming te verlenen of toestemming in te trekken in het hele programma of de applicatie.

Hier zijn de lijstaanpassers en of deze van toepassing zijn of niet:

Toegang ModifierKlasse niveauFunctie niveauVariabel niveau
openbaarNAJAJA
privaatNAJAJA
beschermdeNAJAJA
abstractJAJANA
laatsteJAJANA
StatischNAJAJA

In het bovenstaande verhaal geeft NA het niet-toepasselijke aan. Dat betekent dat we het publiek, privé en beschermd op klasniveau niet kunnen gebruiken. We kunnen de samenvatting en de finale alleen op klassenniveau gebruiken.

Verschillende toegangsmodificaties in PHP

Hier zijn de volgende Access Modifiers in PHP hieronder vermelden

1. Modifier voor openbare toegang

Het publiek is de standaard modifier zoals JAVA in PHP. Dat betekent dat als we standaard geen modifier gebruiken met de functies van de identifiers, het wordt beschouwd als een modifier voor openbare toegang. Dit is een van de meest gebruikte. Op het moment dat we de herbruikbaarheid van de code van de functie bereiken, gaan we meestal met de modifier voor openbare toegang. Omdat het publiek overal kan worden gebruikt, zeker binnen de klas, buiten de klas, in de uitgebreide klasse, en als dat openbare herbruikbare niet aan een klasse is gebonden, kunnen we dat overal gebruiken waar we het bestand opnemen. Zoals vermeld in de bovenstaande tabel kunnen we deze openbare modifier niet samen met de klasse privé en beveiligd gebruiken.

Nu is het tijd om het voorbeeld van de modifier voor openbare toegang te bekijken:

<_?php
class MyAccess (
var $var = "This is first var";
// print var variable value
function returnVar() (
echo $this->var;
)
)
$obj1 = new MyAccess();$obj1->returnVar();
?>

In de bovenstaande code is de functie returnVar () gedefinieerd zonder toegangsmodificator, dus dit werkt zo openbaar omdat dit de standaardmodificator in de PHP-taal is.

openbaar, privé en beschermd zijn niet van toepassing op het niveau van de klas, laten we het met een voorbeeld bekijken.

<_?php
class public MyAccess (
var $var = "This is first var";
function returnVar() (
echo $this->var;
)
)
$obj1 = new MyAccess();
$obj1->returnVar();
?>

De bovenstaande code geeft een foutmelding zoals hieronder vermeld:

(!) Parse-fout: syntaxisfout, onverwacht 'openbaar' (T_PUBLIC), verwacht identifier (T_STRING) in E: \ wamp \ www \ twit \ index.php op regel 2

Dit blijft hetzelfde voor zowel privé als beveiligd.

<_?php
class private MyAccess (
var $var = "This is first var";
)
?>
class protected MyAccess (
var $var = "This is first var";
)
?>
<_?php
class private MyAccess (
var $var = "This is first var";
)
?>
class protected MyAccess (
var $var = "This is first var";
)
?>

2. Modifier voor privétoegang

Met deze modifier kunnen we het privé-sleutelwoord verwerken. We kunnen de privé-modifier niet gebruiken met de klasse. We kunnen dit alleen gebruiken met de klassenvariabelen en klassenmethoden (zoals we in de bovenstaande tabel hebben vermeld). Wanneer we de privéverklaring aangeven en gebruiken, is deze niet toegankelijk via het object van de klasse. Het kan alleen binnen de klas worden gebruikt.

Bijvoorbeeld

<_?php
class MyAccess (
var $var = "This is first var";
private $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
$obj1 = new MyAccess();
echo $obj1->fist_name; // will give the error
$obj1->set_fist_name("Jai Shre");
$obj1->returnVar();
?>
echo $obj1->fist_name; // will give the error

Deze coderegel kunnen we gebruiken, omdat dit de fout oplevert. Dit is iets waar we geen toegang toe hebben tot de privévariabele met het object van die klasse. Maar we kunnen dit gebruiken door de instelling en de getter-methode te gebruiken zoals we die in de bovenstaande code gebruiken. $ obj1-> set_fist_name ("Jai Shre"); regel code stelt de waarde in de variabele in en gebruikt $ obj1-> returnVar (); we kunnen de waarde van de ingestelde variabele krijgen.

3. Beschermde toegang modifier

Net als publiek en privaat, biedt protected zichzelf geen ondersteuning op klasniveau. Net als een privé-modificator beperkt beschermd ook de toegang van de klassenvariabelen of de functie van buiten de klasse. Het kan worden gebruikt binnen dezelfde klasse en uit de subklasse (onderliggende klasse).

Bijvoorbeeld

<_?php
class MyAccess (
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child extends MyAccess (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child();
//echo $obj1->fist_name; // will give the error
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>

echo $ obj1-> fist_name; de regel code geeft de onderstaande foutmelding

Output:

Fatale fout: Geen toegang tot beveiligde eigendom MyAccess :: $ fist_name in E: \ wamp \ www \ twit \ index.php op regel 20

4. Abstracte toegangsmodificator

Het kan worden gebruikt op de klasse en de functie, niet op de klassenvariabele. Als een klasse ten minste één abstracte functie heeft, moet deze als abstract worden verklaard. We kunnen de abstracte klasse niet instantiëren. Een abstracte klasse wordt voornamelijk beschouwd als een onvolledige klasse.

5. Laatste toegangsmodificator

Als een klasse als finaal wordt verklaard, kunnen we die klasse niet verlengen. PHP beperkt de overerving van de laatste klasse.

6. Statische toegangsmodificator

Het statische trefwoord kan worden gebruikt om elke functie statisch te maken. Het maakt de mogelijkheid van die functie mogelijk, zodat men kan gebruiken bij het creëren van een object van die klasse waarin het is verklaard. Statisch methode voorbeeld -

public static function static Function()
(
// declaration goes here..
)

Conclusie

We moeten altijd de toegangsmodificator gebruiken volgens de zakelijke vereisten. Door privé en beschermd te gebruiken, kunnen we het directe gebruik van privévariabelen en privémethoden van buiten de aangegeven klasse beperken.

Aanbevolen artikelen

Dit is een gids voor Access Modifiers in PHP. Hier bespreken we de verschillende toegangsmodificaties in PHP met de voorbeelden en uitgangen. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Abstracte klasse in PHP
  2. Patronen in PHP
  3. PHP Switch Verklaring
  4. Variabelen in PHP
  5. C Trefwoorden
  6. C # Sleutelwoorden
  7. Statische methode in PHP
  8. Statisch trefwoord in C
  9. Switch-verklaring in C #
  10. Volledige gids voor Abstract Class in C #
  11. Volledige gids voor de statische JavaScript-methode