Introduktion til Access Modifiers i PHP

Adgangsmodifikator er en måde, hvorpå vi kan indstille tilgængelighedsomfang og rettigheder til variablen for andre identifikatorer i PHP. PHP understøtter forskellige nøgleord til at fremstille en hvilken som helst variabel for at få adgang til enhver variabel og identifikatorerne. Vi kan tildele disse nøgleord til klassen, funktionen eller identifikatorerne. Disse nøgleord - offentlige, private, beskyttede, abstrakte, endelige osv.

Hvornår skal jeg bruge Access Modifiers i PHP?

PHP har nogle begrænsninger på sin adgangsmodifikator i modsætning til Java. Vi kan ikke bruge alle PHP-adgangsmodifikatorer på klasseniveau, funktionsniveau og identifikationsniveau. Vi kan bruge disse adgangsmodifikatorer i henhold til vores forretningsbehov for at give tilladelse eller tilbagekalde tilladelse i hele programmet eller applikationen.

Her er listemodifikatorerne, og om det er relevant eller ikke:

Adgang modifikatorKlasseniveauFunktionsniveauVariabelt niveau
offentligNAJAJA
privatNAJAJA
beskyttetNAJAJA
abstraktJAJANA
endeligeJAJANA
StatiskNAJAJA

I ovenstående fortælling angiver NA det ikke-gældende. Det betyder, at vi ikke kan bruge det offentlige, private og beskyttede på klassetrin. Vi kan kun bruge det abstrakte og det endelige på klassetrin.

Forskellige adgangsmodifikatorer i PHP

Her er følgende Access Modifiers i PHP omtale nedenfor

1. Modifikator for offentlig adgang

Offentligheden er standardmodifikator som JAVA i PHP. Det betyder, at hvis vi ikke bruger nogen modifikator med funktionerne i identifikatorerne som standard, betragtes det som en offentlig adgangsmodifikator. Dette er en af ​​de mest anvendte. Når vi kommer til genanvendeligheden af ​​funktionskoden, går vi normalt med den offentlige adgangsmodifikator. Fordi offentligheden kan bruges hvor som helst, i klassen med sikkerhed, uden for klassen, i den udvidede klasse, og hvis den offentlige genanvendelige ikke er bundet til nogen klasse, kan vi bruge det hvor som helst, hvor vi inkluderer filen. Som nævnt i ovenstående tabel kan vi ikke bruge denne offentlige modifikator med klassen sammen med private og beskyttede også.

Nu er det tid til at se eksemplet på den offentlige adgangsmodifikator:

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

I ovenstående kode er returnVar () -funktionen defineret uden adgangsmodifikator med den, så denne fungerer som offentlig, da dette er standardmodifikatoren i PHP-sproget.

offentlige, private og beskyttede vil ikke være gældende på klassetrin, lad os se det med et eksempel.

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

Ovenstående kode giver en fejl som nævnt nedenfor:

(!) Analysefejl: syntaksfejl, uventet 'offentlig' (T_PUBLIC), forventer identifikator (T_STRING) i E: \ wamp \ www \ twit \ index.php på linje 2

Dette forbliver det samme for private og beskyttede.

<_?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. Modifikator for privat adgang

Denne ændrer os det private nøgleord, der skal behandles med det. Vi kan ikke bruge den private modifikator med klassen. Vi kan kun bruge dette med klassevariabler og klassemetoder (som vi har nævnt i ovenstående tabel). Når vi erklærer og bruger det private, kan det ikke fås adgang til det ved hjælp af klassens objekt. Det kan kun bruges i klassen.

For eksempel

<_?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

Denne kodelinje kan vi bruge, da dette vil medføre fejlen. Dette er noget, vi ikke kan få adgang til den private variabel ved hjælp af objektet i denne klasse. Men vi kan bruge dette ved at bruge dens indstilling og getter-metoden, som vi bruger i ovenstående kode. $ obj1-> set_fist_name (“Jai Shre”); kodelinje indstiller værdien i variablen og bruger $ obj1-> returnVar (); vi kan få værdien af ​​den indstillede variabel.

3. Beskyttet adgangsmodifikator

Ligesom offentlig og privat understøtter ikke beskyttet sig selv på klassetrin. Ligesom en privat modifikator begrænser beskyttet også adgangen til klassevariablerne eller funktionen uden for klassen. Det kan bruges inden for samme klasse og fra underklassen (barneklasse).

For eksempel

<_?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();
?>

ekko $ obj1-> fist_name; kodelinjen giver nedenstående fejl

Produktion:

Dødelig fejl: Kan ikke få adgang til beskyttet ejendom MyAccess :: $ fist_name i E: \ wamp \ www \ twit \ index.php på linje 20

4. Abstrakt adgang modifikator

Det kan bruges på klassen og funktionen, ikke på klassevariablen. Hvis en klasse har mindst en abstrakt funktion, skal den erklæres som en abstrakt. Vi kan ikke indlede den abstrakte klasse. En abstrakt klasse betragtes hovedsageligt som en ufuldstændig klasse.

5. Ændring af endelig adgang

Hvis en klasse er erklæret som en finale, kan vi ikke forlænge denne klasse. PHP begrænser den endelige klasse fra at blive arvet.

6. Statisk adgangsmodifikator

Det statiske søgeord kan bruges til at gøre enhver funktion som statisk. Det muliggør funktionen af ​​denne funktion, så man kan bruge inden for at skabe et objekt i den klasse, hvori den er erklæret. Statisk metodeeksempel -

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

Konklusion

Vi skal altid bruge adgangsmodifikatoren i henhold til forretningskravene. Ved hjælp af private og beskyttede kan vi begrænse den direkte brug af private variabler og private metoder uden for den erklærede klasse.

Anbefalede artikler

Dette er en guide til Access Modifiers i PHP. Her diskuterer vi forskellige adkomstmodifikatorer i PHP med eksemplerne og output. Du kan også se på den følgende artikel for at lære mere -

  1. Abstrakt klasse i PHP
  2. Mønstre i PHP
  3. PHP-switch-erklæring
  4. Variabler i PHP
  5. C Nøgleord
  6. C # Nøgleord
  7. Statisk metode i PHP
  8. Statisk nøgleord i C
  9. Skift erklæring i C #
  10. Komplet guide til Abstract Class i C #
  11. Komplet guide til JavaScript-statisk metode

Kategori: