Wprowadzenie do modyfikatorów dostępu w PHP

Modyfikator dostępu to sposób, dzięki któremu możemy ustawić zakres i prawa dostępu do zmiennej dowolnego innego identyfikatora w PHP. PHP obsługuje różne słowa kluczowe, aby dowolna zmienna miała dostęp do dowolnej zmiennej i identyfikatorów. Możemy przypisać te słowa kluczowe do klasy, funkcji lub identyfikatorów. Te słowa kluczowe - publiczne, prywatne, chronione, abstrakcyjne, końcowe itp.

Kiedy używać modyfikatorów dostępu w PHP?

PHP ma pewne ograniczenia dotyczące modyfikatora dostępu, w przeciwieństwie do Java. Nie możemy używać całego modyfikatora dostępu PHP na poziomie klasy, poziomu funkcji i poziomu identyfikatora. Możemy używać tych modyfikatorów dostępu zgodnie z potrzebą naszej firmy, aby udzielić lub cofnąć pozwolenie w całym programie lub aplikacji.

Oto modyfikatory listy i czy ma to zastosowanie, czy nie:

Modyfikator dostępuPoziom klasyPoziom funkcjiZmienny poziom
publicznyNATAKTAK
prywatnyNATAKTAK
chronionyNATAKTAK
abstrakcyjnyTAKTAKNA
finałTAKTAKNA
StatycznyNATAKTAK

W powyższej opowieści NA oznacza Nie dotyczy. Oznacza to, że nie możemy korzystać z publicznego, prywatnego i chronionego na poziomie klasy. Możemy używać streszczenia i finału tylko na poziomie klasy.

Różne modyfikatory dostępu w PHP

Oto następujące modyfikatory dostępu w PHP wymienione poniżej

1. Modyfikator dostępu publicznego

Publiczny jest domyślnym modyfikatorem, takim jak JAVA w PHP. Oznacza to, że jeśli nie użyjemy żadnego modyfikatora z funkcjami identyfikatorów, jest to uważane za modyfikator dostępu publicznego. Jest to jeden z najczęściej używanych. Gdy tylko dojdziemy do ponownego wykorzystania kodu funkcji, zwykle korzystamy z publicznego modyfikatora dostępu. Ponieważ publiczności można używać z dowolnego miejsca, na pewno w klasie, poza klasą, w klasie rozszerzonej, a jeśli ta publiczna możliwość wielokrotnego użytku nie jest ograniczona do żadnej klasy, możemy jej użyć w dowolnym miejscu, w którym znajduje się plik. Jak wspomniano w powyższej tabeli, nie możemy używać tego publicznego modyfikatora z klasą, a także prywatnego i chronionego.

Czas zobaczyć przykład modyfikatora publicznego dostępu:

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

W powyższym kodzie zdefiniowano funkcję returnVar () bez modyfikatora dostępu, więc będzie ona działać jako publiczna, ponieważ jest to domyślny modyfikator w języku PHP.

publiczne, prywatne i chronione nie będą miały zastosowania na poziomie klasy, zobaczmy to na przykładzie.

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

Powyższy kod spowoduje błąd, jak wspomniano poniżej:

(!) Błąd analizy: błąd składni, nieoczekiwany „publiczny” (T_PUBLIC), oczekiwanie identyfikatora (T_STRING) w E: \ wamp \ www \ twit \ index.php w linii 2

To samo pozostaje również w przypadku prywatności i ochrony.

<_?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. Modyfikator dostępu prywatnego

Ten modyfikator używa prywatnego słowa kluczowego do przetworzenia go. Nie możemy używać prywatnego modyfikatora z klasą. Możemy tego używać tylko ze zmiennymi klas i metodami klas (jak wspomnieliśmy w powyższej tabeli). Kiedy deklarujemy i używamy prywatnego, nie można uzyskać do niego dostępu za pomocą obiektu klasy. Można go używać tylko w klasie.

Na przykład

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

Ten wiersz kodu, którego możemy użyć, ponieważ spowoduje błąd. Nie możemy uzyskać dostępu do zmiennej prywatnej za pomocą obiektu tej klasy. Ale możemy tego użyć, używając jego ustawienia i metody gettera, tak jak używamy w powyższym kodzie. $ obj1-> set_fist_name („Jai Shre”); wiersz kodu ustawi wartość w zmiennej i używając $ obj1-> returnVar (); możemy uzyskać wartość ustawionej zmiennej.

3. Chroniony modyfikator dostępu

Podobnie jak publiczne i prywatne, samo chronione nie obsługuje na poziomie klasy. Podobnie jak prywatny modyfikator, chroniony ogranicza również dostęp do zmiennych klasy lub funkcji spoza klasy. Może być używany w tej samej klasie i z podklasy (klasa potomna).

Na przykład

<_?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-> nazwa_ pięści; wiersz kodu da następujący błąd

Wynik:

Błąd krytyczny: nie można uzyskać dostępu do chronionej właściwości MyAccess :: $ nazwa_ pięści w E: \ wamp \ www \ twit \ index.php w linii 20

4. Abstrakcyjny modyfikator dostępu

Może być używany w klasie i funkcji, a nie w zmiennej klasy. Jeśli jakaś klasa ma co najmniej jedną funkcję abstrakcyjną, należy ją zadeklarować jako abstrakcję. Nie możemy utworzyć instancji klasy abstrakcyjnej. Klasa abstrakcyjna jest uważana głównie za klasę niepełną.

5. Ostateczny modyfikator dostępu

Jeśli jakaś klasa zostanie zadeklarowana jako ostateczna, nie możemy rozszerzyć tej klasy. PHP ogranicza dziedziczenie ostatniej klasy.

6. Modyfikator dostępu statycznego

Słowo kluczowe static może być użyte do uczynienia dowolnej funkcji statyczną. Włącza zdolność tej funkcji, aby można było korzystać z niej podczas tworzenia obiektu tej klasy, w której została zadeklarowana. Przykład metody statycznej -

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

Wniosek

Zawsze powinniśmy używać modyfikatora dostępu zgodnie z wymaganiami biznesowymi. Używając prywatnych i chronionych, możemy ograniczyć bezpośrednie użycie zmiennych prywatnych i metod prywatnych spoza zadeklarowanej klasy.

Polecane artykuły

Jest to przewodnik po modyfikatorach dostępu w PHP. Tutaj omawiamy różne modyfikatory dostępu w PHP z przykładami i wynikami. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Klasa abstrakcyjna w PHP
  2. Wzory w PHP
  3. Instrukcja PHP Switch
  4. Zmienne w PHP
  5. C Słowa kluczowe
  6. C # Słowa kluczowe
  7. Metoda statyczna w PHP
  8. Statyczne słowo kluczowe w C.
  9. Instrukcja Switch w C #
  10. Kompletny przewodnik po klasie abstrakcyjnej w C #
  11. Kompletny przewodnik po JavaScript Static Method