Введение в модификаторы доступа в PHP

Модификатор доступа - это способ, с помощью которого мы можем установить область действия и права доступа к переменной любых других идентификаторов в PHP. PHP поддерживает различные ключевые слова, чтобы сделать любую переменную для доступа к любой переменной и идентификаторам. Мы можем присвоить эти ключевые слова классу, функции или идентификаторам. Эти ключевые слова - публичные, частные, защищенные, абстрактные, итоговые и т. Д.

Когда использовать модификаторы доступа в PHP?

PHP имеет некоторые ограничения на свой модификатор доступа, в отличие от Java. Мы не можем использовать весь модификатор доступа PHP на уровне класса, уровне функции и уровне идентификатора. Мы можем использовать эти модификаторы доступа в соответствии с нашей бизнес-необходимостью, чтобы предоставить разрешение или отозвать разрешение во всей программе или приложении.

Вот список модификаторов и применим ли он или нет:

Модификатор доступаУровень классаУровень функцииУровень переменной
общественностиНе ДоступноДАДА
частныйНе ДоступноДАДА
защищенныйНе ДоступноДАДА
абстрактныйДАДАНе Доступно
окончательныйДАДАНе Доступно
статическийНе ДоступноДАДА

В приведенном выше рассказе NA обозначает «Неприменимо». Это означает, что мы не можем использовать общедоступные, частные и защищенные на уровне класса. Мы можем использовать реферат и финал только на уровне класса.

Различные модификаторы доступа в PHP

Вот следующие модификаторы доступа в PHP, упомянутые ниже

1. Модификатор публичного доступа

Публичность - это модификатор по умолчанию, такой как JAVA в PHP. Это означает, что если мы не используем какой-либо модификатор с функциями идентификаторов по умолчанию, он считается модификатором публичного доступа. Это один из самых широко используемых. Как только мы подходим к повторному использованию кода функции, мы обычно используем модификатор открытого доступа. Потому что общедоступность может использоваться из любого места, наверняка внутри класса, вне класса, в расширенном классе, и если это общедоступное многократное использование не ограничено каким-либо классом, мы можем использовать его везде, где мы включаем файл. Как упоминалось в приведенной выше таблице, мы не можем использовать этот открытый модификатор вместе с классом, а также private и protected.

Теперь пришло время увидеть пример модификатора публичного доступа:

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

В приведенном выше коде функция returnVar () была определена без модификатора доступа, поэтому она будет работать как общедоступная, так как это модификатор по умолчанию в языке PHP.

public, private и protected не будут применимы на уровне класса, давайте рассмотрим это на примере.

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

Приведенный выше код выдаст ошибку, как указано ниже:

(!) Ошибка синтаксического анализа: синтаксическая ошибка, непредвиденная 'public' (T_PUBLIC), ожидаемый идентификатор (T_STRING) в E: \ wamp \ www \ twit \ index.php в строке 2

Это остается тем же самым для частного и защищенного также.

<_?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. Модификатор личного доступа

Этот модификатор использует приватное ключевое слово для обработки с ним. Мы не можем использовать приватный модификатор с классом. Мы можем использовать это только с переменными класса и методами класса (как мы упоминали в таблице выше). Когда мы объявляем и используем private, тогда к нему нельзя получить доступ с помощью объекта класса. Он может быть использован только внутри класса.

Например

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

Эту строку кода мы можем использовать, так как это приведет к ошибке. Это то, что мы не можем получить доступ к закрытой переменной, используя объект этого класса. Но мы можем использовать это, используя его настройки и метод получения, как мы использовали в приведенном выше коде. $ obj1-> set_fist_name («Jai Shre»); строка кода установит значение в переменной и использует $ obj1-> returnVar (); мы можем получить значение заданной переменной.

3. Модификатор защищенного доступа

Как и общедоступные, так и частные, защищенная сама по себе не поддерживается на уровне класса. Подобно модификатору private, protected также ограничивает доступ к переменным класса или функции извне класса. Он может быть использован в том же классе и из подкласса (дочерний класс).

Например

<_?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; строка кода выдаст ошибку ниже

Выход:

Неустранимая ошибка: невозможно получить доступ к защищенному свойству MyAccess :: $ fist_name в E: \ wamp \ www \ twit \ index.php в строке 20

4. Абстрактный модификатор доступа

Его можно использовать в классе и функции, а не в переменной класса. Если какой-либо класс имеет хотя бы одну абстрактную функцию, он должен быть объявлен как абстрактный. Мы не можем создать экземпляр абстрактного класса. Абстрактный класс в основном рассматривается как неполный класс.

5. Конечный модификатор доступа

Если какой-либо класс объявлен как финальный, мы не можем расширить этот класс. PHP ограничивает конечный класс от наследования.

6. Статический модификатор доступа

Ключевое слово static может использоваться для того, чтобы сделать любую функцию статической. Это дает возможность этой функции использовать ее при создании объекта того класса, в котором она была объявлена. Пример статического метода -

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

Вывод

Мы всегда должны использовать модификатор доступа согласно бизнес-требованиям. Используя private и protected, мы можем ограничить прямое использование приватных переменных и приватных методов извне объявленного класса.

Рекомендуемые статьи

Это руководство по модификаторам доступа в PHP. Здесь мы обсуждаем различные модификаторы доступа в PHP с примерами и результатами. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. Абстрактный класс в PHP
  2. Шаблоны в PHP
  3. Заявление о переключении PHP
  4. Переменные в PHP
  5. C Ключевые слова
  6. C # Ключевые слова
  7. Статический метод в PHP
  8. Статическое ключевое слово в C
  9. Оператор переключения в C #
  10. Полное руководство по абстрактному классу в C #
  11. Полное руководство по статическому методу JavaScript