Каква е разликата между публичен, частен и защитен в PHP

Kakva E Razlikata Mezdu Publicen Casten I Zasiten V Php



PHP се използва широко за разработване на динамични уебсайтове и уеб приложения. PHP предоставя ключови думи, известни като модификатори за достъп . Свойствата на модификатора за достъп се използват за достъп до променливата, класа или свойствата на класа по три различни начина, като напр публичен , частен, и защитени . В тази статия ще обсъдим тези модификатори за достъп и ще определим разликата между тези три модификатора за достъп в езика за програмиране PHP.

Какво представляват модификаторите за достъп в PHP?

В PHP модификаторите за достъп са от съществено значение, защото дават на потребителите възможността да регулират видимостта, както и достъпността на атрибутите и методите на класа. В резултат на това той осигурява капсулиране и сигурност на данните и следователно членовете на класа са защитени от неоторизиран достъп или промяна. Освен това улеснява поддръжката на кода и отстраняването на грешки.







Видове модификатори за достъп

Трите модификатора за достъп, които съществуват в PHP, са разгледани по-долу:



  • Обществен: Можете да получите достъп до публичен метод извън класа. Това означава, че всеки код може да осъществява достъп, да променя и извиква публичен метод.
  • Частно: Достъпът до частния метод е ограничен до самия клас. Това означава, че на нито един от другите кодове, дори ако е дъщерен клас, не е разрешен достъп до частен метод или четене на частната стойност.
  • Защитено: Защитен метод е достъпен само вътре в клас и класове, които са свързани с него; не може да се използва извън тези класове. Всеки изходен код, който има нужда от достъп до екземпляра на класа, може да чете или променя данните на защитено свойство или да извиква защитена функция.

Разлика между публични, частни и защитени модификатори на достъп в PHP

Имот Обществен Частно Защитен
Достъпност Тези модификатори за достъп могат да бъдат достъпни навсякъде, например вътре и извън кода. Спецификаторите за частен достъп са достъпни само в рамките на класа. Може да бъде достъпен вътре в класа и свързаните с него (дете) класове и методи.
Гъвкавост Най-голяма гъвкавост се предлага от публичните ресурси, тъй като те могат да бъдат достъпни отвсякъде. Тъй като те са изключително достъпни в рамките на класа, тези методи предлагат най-малко гъвкавост. Защитеният метод осигурява умерена гъвкавост, тъй като дъщерните класове имат достъп до тези методи.
Капсулиране Друг код може да има достъп или да капсулира публични методи, но програмистът има контрол над това. Вътре в класа е капсулиран частен метод, което прави невъзможно достъпът или актуализирането им за външен код. Неговият процес на капсулиране е същият като публичния метод в PHP.
Сигурност Публичните методи са достъпни отвсякъде. Така че те осигуряват ниско ниво на сигурност в кода. Максималното ниво на сигурност се осигурява от модификаторите за частен достъп, тъй като те се съдържат изцяло в класа. Тъй като те могат да бъдат достъпни само от членове на класа и неговите подкласове, защитените модификатори на достъп предлагат разумно ниво на сигурност.

Нека видим разликата между тези спецификатори за достъп, използвайки прост пример за програма в PHP.



Пример: PHP програма с модификатори за частен, публичен и защитен достъп





Следният пример демонстрира разликата между public, private и protected в един примерен код:

< ?php
клас MyClass {
публичен $публично = „Публична променлива. ' ; // Може да бъде достъпен от всяко място
частен $частно = „Частна променлива. ' ; // Може да бъде достъпен само от класа
защитени $защитен = 'Защитена променлива.' ; // Може да бъде достъпен в рамките на класа и всички подкласове

публичен функция getPrivate ( ) {
връщане $това - > частни;
}

публичен функция getProtected ( ) {
връщане $това - > защитени;
}
}
$obj = нов MyClass ( ) ;

ехо $obj - > публичен;
ехо $obj - > getPrivate ( ) ;
ехо $obj - > getProtected ( ) ;
? >



В горната програма дефинирахме клас като Моят клас с публична собственост като $публично който може да има достъп навсякъде в кода, частна собственост като $частно , и защитена собственост т.нар $защитен , следователно не можем да имаме достъп до частни и защитени спецификатори директно извън класа. Тъй като използвахме два публични метода, наречени getPrivate() и getProtected() които връщат съответно стойностите на частните и защитените променливи на свойствата, а изходът е даден по-долу:

Заключение

PHP предлага много функционалности и една от тях са ключовите думи, наречени модификатори на достъпа. Тези модификатори за достъп предоставят различни модели за достъп до данните на класовете в PHP програмата. В горния урок видяхме разликата между модификаторите за достъп по отношение на достъпност, капсулиране, гъвкавост и сигурност, които се предлагат в PHP.