Introduktion till åtkomstmodifierare i PHP

Åtkomstmodifierare är ett sätt genom vilket vi kan ställa in tillgänglighetsomfång och rättigheter för variabeln för alla andra identifierare i PHP. PHP stöder olika nyckelord för att göra alla variabler för åtkomst till alla variabler och identifierare. Vi kan tilldela dessa nyckelord till klassen, funktionen eller identifierarna. Dessa nyckelord - offentliga, privata, skyddade, abstrakta, slutliga, etc.

När ska man använda Access Modifiers i PHP?

PHP har vissa begränsningar i sin åtkomstmodifierare, till skillnad från Java. Vi kan inte använda alla PHP-åtkomstmodifierare på klassnivå, funktionsnivå och identifieringsnivå. Vi kan använda dessa åtkomstmodifierare enligt vår verksamhetsbehov för att bevilja tillstånd eller återkalla tillstånd i hela programmet eller applikationen.

Här är listmodifierarna och om det är tillämpligt eller inte:

Access ModifierKlassnivåFunktionsnivåVariabel nivå
offentligNAJAJA
privatNAJAJA
skyddadeNAJAJA
abstraktJAJANA
slutligJAJANA
StatiskNAJAJA

I ovanstående berättar NA om Ej tillämpligt. Det betyder att vi inte kan använda det offentliga, privata och skyddade på klassnivå. Vi kan använda abstrakt och finalen endast på klassnivå.

Olika åtkomstmodifierare i PHP

Här är följande Access Modifiers i PHP som nämns nedan

1. Modifierare för allmän åtkomst

Allmänheten är standardmodifieraren som JAVA i PHP. Det betyder att om vi inte använder någon modifierare med identifierarens funktioner som standard så betraktas det som en modifierare för allmän åtkomst. Detta är en av de mest använda. När vi kommer till återanvändbarheten för funktionskoden går vi vanligtvis med modifieraren för allmän åtkomst. Eftersom allmänheten kan användas var som helst, inom klassen säkert, utanför klassen, i den utökade klassen, och om den offentliga återanvändbara inte är begränsad till någon klass, kan vi använda det var som helst vi inkluderar filen. Som nämnts i ovanstående tabell kan vi inte använda denna offentliga modifierare med klassen tillsammans med privata och skyddade också.

Nu är det dags att se exemplet på modifieraren för allmän åtkomst:

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

I ovanstående kod har funktionen returnVar () definierats utan åtkomstmodifierare med den, så den fungerar som offentlig eftersom detta är standardmodifieraren på PHP-språket.

offentligt, privat och skyddat kommer inte att tillämpas på klassnivå, låt oss se det med ett exempel.

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

Ovanstående kod ger ett fel som nämns nedan:

(!) Analysfel: syntaxfel, oväntat "offentligt" (T_PUBLIK), förväntande identifierare (T_STRING) i E: \ wamp \ www \ twit \ index.php på rad 2

Detta förblir samma för privata och skyddade också.

<_?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. Modifierare för privat åtkomst

Den här modifieraren ger oss det privata nyckelordet att bearbeta med det. Vi kan inte använda den privata modifieraren med klassen. Vi kan använda detta endast med klassvariablerna och klassmetoderna (som vi har nämnt i tabellen ovan). När vi förklarar och använder det privata kan det inte nås med klassens objekt. Det kan endast användas inom klassen.

Till exempel

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

Den här kodraden kan vi använda eftersom detta kommer med felet. Det här är något vi inte kan komma åt den privata variabeln med objektet för den klassen. Men vi kan använda detta genom att använda dess inställning och getter-metoden som vi använder i koden ovan. $ obj1-> set_fist_name ("Jai Shre"); kodraden ställer in värdet i variabeln och använder $ obj1-> returnVar (); vi kan få värdet på den inställda variabeln.

3. Skyddad åtkomstmodifierare

Precis som offentligt och privat stöder inte skyddet sig själv på klassnivå. Liksom en privat modifierare begränsas skyddad också åtkomsten till klassvariablerna eller funktionen utanför klassen. Det kan användas inom samma klass och från underklassen (barnklass).

Till exempel

<_?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; kodraden ger felet nedan

Produktion:

Dödligt fel: Kan inte komma åt skyddad egenskap MyAccess :: $ fist_name i E: \ wamp \ www \ twit \ index.php på rad 20

4. Abstrakt åtkomstmodifierare

Det kan användas på klassen och funktionen, inte på klassvariabeln. Om någon klass har minst en abstrakt funktion måste den förklaras som en abstrakt. Vi kan inte initiera den abstrakta klassen. En abstrakt klass betraktas huvudsakligen som en ofullständig klass.

5. Ändring av slutåtkomst

Om någon klass förklaras som en final, kan vi inte förlänga den klassen. PHP begränsar den slutliga klassen från att gå i arv.

6. Statisk åtkomstmodifierare

Det statiska nyckelordet kan användas för att göra alla funktioner som statiska. Den möjliggör förmågan hos den funktionen så att man kan använda i att skapa ett objekt i den klass där den har deklarerats. Exempel på statisk metod -

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

Slutsats

Vi bör alltid använda åtkomstmodifieraren enligt affärskraven. Med privata och skyddade kan vi begränsa den direkta användningen av privata variabler och privata metoder utanför den deklarerade klassen.

Rekommenderade artiklar

Detta är en guide till Access Modifiers i PHP. Här diskuterar vi de olika åtkomstmodifierarna i PHP med exemplen och utgångarna. Du kan också titta på följande artikel för att lära dig mer -

  1. Abstrakt klass i PHP
  2. Mönster i PHP
  3. PHP Switch Statement
  4. Variabler i PHP
  5. C Nyckelord
  6. C # Nyckelord
  7. Statisk metod i PHP
  8. Statiska nyckelord i C
  9. Byt uttalande i C #
  10. Komplett guide till Abstract Class i C #
  11. Komplett guide till JavaScript-statisk metod

Kategori: