Introducere în modificatorii de acces în PHP

Modificatorul de acces este o modalitate prin care putem seta un scop de accesibilitate și drepturi la variabila oricărui alt identificator din PHP. PHP acceptă diverse cuvinte cheie pentru a face ca orice variabilă să poată accesa orice variabilă și identificatori. Putem atribui aceste cuvinte cheie clasei, funcției sau identificatorilor. Aceste cuvinte cheie - publice, private, protejate, abstracte, finale etc.

Când să utilizați modificatorii de acces în PHP?

PHP are unele limitări asupra modificatorului de acces, spre deosebire de Java. Nu putem folosi tot modificatorul de acces PHP la nivelul clasei, nivelul funcțiilor și nivelul identificatorului. Putem folosi aceste modificatoare de acces conform necesității afacerii noastre pentru a acorda permisiunea sau a revoca permisiunea pe parcursul programului sau al aplicației.

Iată modificatorii listei și dacă este aplicabil sau nu:

Modificator de accesNivelul claseiNivelul funcțieiNivel variabil
publicN / ADADA
privatN / ADADA
protejatN / ADADA
abstractDADAN / A
finalDADAN / A
StaticN / ADADA

În povestea de mai sus, NA denotă Notificabil. Asta înseamnă că nu putem folosi publicul, privat și protejat la nivel de clasă. Putem folosi rezumatul și finalul doar la nivelul clasei.

Diverse modificatoare de acces în PHP

Iată următoarele modificatoare de acces în mențiunea PHP mai jos

1. Modificator de acces public

Publicul este modificatorul implicit precum JAVA în PHP. Asta înseamnă că dacă nu folosim în mod implicit niciun modificator cu funcțiile identificatorilor, acesta este considerat un modificator de acces public. Acesta este unul dintre cele mai utilizate pe scară largă. În momentul în care ajungem la reutilizarea codului funcției, de obicei mergem cu modificatorul de acces public. Deoarece, publicul poate fi utilizat de oriunde, în cadrul clasei, cu siguranță, în afara clasei, în clasa extinsă și dacă acel public reutilizabil nu este legat de nicio clasă, îl putem folosi oriunde am include fișierul. Așa cum am menționat în tabelul de mai sus, nu putem folosi acest modificator public cu clasa împreună cu privat și protejat.

Acum, este timpul să vedeți exemplul modificatorului de acces public:

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

În codul de mai sus , funcția returnVar () a fost definită fără niciun modificator de acces cu ea, astfel încât acesta va funcționa la fel de public, deoarece acesta este modificatorul implicit în limbajul PHP.

public, privat și protejat nu va fi aplicabil la nivelul clasei, să vedem cu un exemplu.

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

Codul de mai sus va da o eroare așa cum este menționat mai jos:

(!) Eroare de analiză: eroare de sintaxă, „public” neașteptat (T_PUBLIC), identificator care așteaptă (T_STRING) în E: \ wamp \ www \ twit \ index.php pe linia 2

Acest lucru rămâne același și pentru privat și protejat.

<_?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. Modificator de acces privat

Acest modificator ne permite cuvântul cheie privat pentru a procesa cu acesta. Nu putem folosi modificatorul privat cu clasa. Putem folosi acest lucru doar cu variabilele de clasă și metodele de clasă (așa cum am menționat în tabelul de mai sus). Când declaram și folosim privat, atunci nu poate fi accesat folosind obiectul clasei. Poate fi folosit doar în cadrul clasei.

De exemplu

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

Această linie de cod pe care o putem folosi, deoarece va veni cu eroarea. Este ceva ce nu putem accesa variabila privată folosind obiectul clasei respective. Dar putem folosi acest lucru folosind setarea și metoda getter așa cum folosim în codul de mai sus. $ obj1-> set_fist_name („Jai Shre”); linia de cod va seta valoarea în variabilă și folosind $ obj1-> returnVar (); putem obține valoarea variabilei setate.

3. Modificator de acces protejat

La fel ca publicul și privat, protejarea în sine nu acceptă la nivelul clasei. Ca și un modificator privat, protejat restricționează, de asemenea, accesul variabilelor clasei sau funcției din afara clasei. Poate fi utilizat în cadrul aceleiași clase și din subclase (clasa copil).

De exemplu

<_?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; linia de cod va da eroarea de mai jos

ieşire:

Eroare fatală: Nu se poate accesa proprietatea protejată MyAccess :: $ fist_name în E: \ wamp \ www \ twit \ index.php pe linia 20

4. Modificator de acces abstract

Poate fi folosit pe clasă și funcție, nu pe variabila de clasă. Dacă orice clasă are cel puțin o funcție abstractă, atunci ea trebuie declarată abstract. Nu putem iniția clasa abstractă. O clasă abstractă este considerată în principal ca o clasă incompletă.

5. Modificatorul de acces final

Dacă orice clasă este declarată finală, nu putem extinde acea clasă. PHP restricționează moștenirea clasei finale.

6. Modificator de acces static

Cuvântul cheie static poate fi utilizat pentru a face orice funcție ca statică. Permite abilitatea acelei funcții, astfel încât să se poată folosi în crearea unui obiect al clasei în care a fost declarată. Exemplu de metodă statică -

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

Concluzie

Ar trebui să utilizăm întotdeauna modificatorul de acces conform cerințelor de afaceri. Folosind privat și protejat, putem restricționa utilizarea directă a variabilelor private și a metodelor private din afara clasei declarate.

Articole recomandate

Acesta este un ghid pentru modificatorii de acces în PHP. Aici vom discuta despre diferiți modificatori de acces în PHP cu exemple și rezultate. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Abstract Class in PHP
  2. Modele în PHP
  3. Declarație de comutare PHP
  4. Variabile în PHP
  5. C Cuvinte cheie
  6. C # Cuvinte cheie
  7. Metoda statică în PHP
  8. Cuvânt cheie statică în C
  9. Declarație de comutare în C #
  10. Ghid complet la clasa abstractă în C #
  11. Ghid complet pentru metoda statică JavaScript