Вступ до модифікаторів доступу в PHP

Модифікатор доступу - це спосіб, за допомогою якого ми можемо встановити область доступності та права на змінну будь-яких інших ідентифікаторів у PHP. PHP підтримує різні ключові слова, щоб зробити будь-яку змінну для доступу до будь-якої змінної та ідентифікаторів. Ми можемо призначити ці ключові слова класу, функції або ідентифікаторів. Ці ключові слова - державні, приватні, захищені, абстрактні, заключні тощо.

Коли використовувати Модифікатори доступу в PHP?

PHP має деякі обмеження щодо модифікатора доступу, на відміну від Java. Ми не можемо використовувати всі модифікатори доступу PHP на рівні класу, функції та рівня ідентифікатора. Ми можемо використовувати ці модифікатори доступу відповідно до необхідності нашого бізнесу для надання дозволу або відкликання дозволу у всій програмі чи програмі.

Ось модифікатори списку та застосовно це чи ні:

Модифікатор доступуРівень класуФункціональний рівеньЗмінній рівень
громадськіНСТАКТАК
приватнийНСТАКТАК
захищеніНСТАКТАК
рефератТАКТАКНС
остаточнийТАКТАКНС
СтатичнийНСТАКТАК

У наведеній вище казці NA позначає Непридатне. Це означає, що ми не можемо використовувати загальнодоступні, приватні та захищені на рівні класу. Ми можемо використовувати конспект та заключний лише на рівні класу.

Різні модифікатори доступу в PHP

Ось такі Модифікатори доступу в PHP згадуються нижче

1. Модифікатор загальнодоступного доступу

Загальнодоступність - це модифікатор за замовчуванням, такий як JAVA в PHP. Це означає, що якщо ми не використовуємо жодного модифікатора з функціями ідентифікаторів за замовчуванням, він вважається модифікатором доступу для загального користування. Це одна з найбільш широко використовуваних. Оскільки ми переходимо до повторної використання коду функції, ми зазвичай переходимо з модифікатором доступу для загального доступу. Тому що публікація може використовуватися з будь-якого місця, всередині класу напевно, поза класом, у розширеному класі, і якщо ця публічна повторна користування не обмежена до будь-якого класу, ми можемо використовувати це де завгодно, де ми включили файл. Як зазначено у таблиці вище, ми не можемо використовувати цей публічний модифікатор разом із класом, а також приватним та захищеним.

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

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

громадські, приватні та захищені не застосовуватимуться на рівні класу, давайте розглянемо це на прикладі.

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

Вищевказаний код призведе до помилки, як зазначено нижче:

(!) Помилка розбору: помилка синтаксису, несподівана «загальнодоступна» (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. Модифікатор приватного доступу

Цей модифікатор нам приватне ключове слово, щоб обробити його. Ми не можемо використовувати приватний модифікатор з класом. Ми можемо використовувати це лише для змінних класів та методів класу (як ми вже згадували у таблиці вище). Коли ми оголошуємо та використовуємо приватне, то до нього не можна отримати доступ, використовуючи об’єкт класу. Його можна використовувати лише в межах класу.

Наприклад

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

Цей рядок коду ми можемо використати, оскільки це призведе до помилки. Це те, до чого ми не можемо отримати доступ до приватної змінної за допомогою об’єкта цього класу. Але ми можемо використовувати це, використовуючи його налаштування та метод getter, як ми використовуємо у наведеному вище коді. $ obj1-> set_fist_name ("Jai Shre"); рядок коду встановить значення в змінній та використовує $ obj1-> returnVar (); ми можемо отримати значення заданої змінної.

3. Захищений модифікатор доступу

Так само, як державні та приватні, захищений сам не підтримує на рівні класу. Як і приватний модифікатор, захищений також обмежує доступ до змінних класів або функції з-за класу. Її можна використовувати в межах одного класу та з підкласу (дочірнього класу).

Наприклад

<_?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. Статичний модифікатор доступу

Статичне ключове слово можна використовувати для створення будь-якої функції як статичної. Це дає можливість цієї функції, щоб можна було використовувати в межах створення об'єкта того класу, в якому вона була оголошена. Приклад статичного методу -

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

Висновок

Ми завжди повинні використовувати модифікатор доступу відповідно до бізнес-вимог. Використовуючи приватні та захищені, ми можемо обмежити безпосереднє використання приватних змінних та приватних методів поза заявленим класом.

Рекомендовані статті

Це посібник щодо Модифікаторів доступу в PHP. Тут ми обговорюємо різні модифікатори доступу в PHP з прикладами та виходами. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

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