PHP широко используется для разработки динамических веб-сайтов и веб-приложений. PHP предоставляет ключевые слова, известные как модификаторы доступа . Свойства модификатора доступа используются для доступа к переменной, классу или свойствам класса тремя различными способами, такими как общественный , частный, и защищенный . В этой статье мы обсудим эти модификаторы доступа и определим разницу между этими тремя модификаторами доступа в языке программирования PHP.
Что такое модификаторы доступа в PHP?
В PHP модификаторы доступа необходимы, потому что они дают пользователям возможность регулировать видимость, а также доступность атрибутов и методов класса. В результате обеспечивается инкапсуляция и безопасность данных, а значит, члены класса защищены от несанкционированного доступа или изменения. Кроме того, это упрощает обслуживание кода и отладку.
Типы модификаторов доступа
Три модификатора доступа, существующие в PHP, обсуждаются ниже:
- Публичные: Вы можете получить доступ к общедоступному методу извне класса. Это означает, что любой код может получить доступ, изменить и вызвать общедоступный метод.
- Частный: Доступ к частному методу ограничен самим классом. Это означает, что ни одному из других кодов, даже если это дочерний класс, не разрешен доступ к частному методу или чтение частного значения.
- Защищено: Защищенный метод доступен только внутри класса и классов, связанных с ним; его нельзя использовать вне этих классов. Любой исходный код, которому требуется доступ к экземпляру класса, может прочитать или изменить данные защищенного свойства или вызвать защищенную функцию.
Разница между общедоступными, частными и защищенными модификаторами доступа в PHP
Свойство | Общественный | Частный | Защищено |
Доступность | Эти модификаторы доступа могут быть доступны в любом месте, например внутри и снаружи кода. | Спецификаторы закрытого доступа доступны только внутри класса. | Он может быть доступен внутри класса и связанных с ним (дочерних) классов и методов. |
Гибкость | Наибольшую гибкость предлагают общедоступные ресурсы, поскольку к ним можно получить доступ из любого места. | Поскольку они доступны исключительно внутри класса, эти методы обеспечивают наименьшую гибкость. | Защищенный метод обеспечивает умеренную гибкость, поскольку дочерние классы могут получить доступ к этим методам. |
Инкапсуляция | Другой код может обращаться к общедоступным методам или инкапсулировать их, но программист может контролировать это. | Частный метод инкапсулирован внутри класса, что делает невозможным для внешнего кода доступ к ним или их обновление. | Процесс его инкапсуляции такой же, как и у общедоступного метода в PHP. |
Безопасность | Публичные методы доступны из любого места. Таким образом, они обеспечивают низкий уровень безопасности в коде. | Максимальный уровень безопасности обеспечивают частные модификаторы доступа, поскольку они полностью содержатся внутри класса. | Поскольку к ним могут получить доступ только члены класса и его подклассов, защищенные модификаторы доступа обеспечивают разумный уровень безопасности. |
Давайте посмотрим на разницу между этими спецификаторами доступа на простом примере программы на PHP.
Пример: программа PHP с модификаторами доступа Private, Public и Protected
В следующем примере демонстрируется разница между открытым, закрытым и защищенным в одном примере кода:
< ?phpкласс MyClass {
общественный $public '=' 'Обще-переменная. \n ' ; // Доступ возможен из любого места
частный $ частный '=' 'Частная переменная. \n ' ; // Доступ возможен только из класса
защищенный $защищено '=' «Защищенная переменная». ; // Может быть доступен внутри класса и любых подклассов
общественный функция getPrivate ( ) {
возвращаться $ это - > частный;
}
общественный функция получитьзащиту ( ) {
возвращаться $ это - > защищенный;
}
}
$объект = новый мой класс ( ) ;
эхо $объект - > общественный;
эхо $объект - > getPrivate ( ) ;
эхо $объект - > получитьзащиту ( ) ;
? >
В приведенной выше программе мы определили класс как Мои занятия с общественной собственностью как $public который мог получить доступ к любому месту в коде, частному свойству как $ частный , и защищенное свойство, называемое $защищено , следовательно, мы не можем получить доступ к спецификаторам private и protected напрямую из-за пределов класса. Поскольку мы использовали два общедоступных метода, называемых получитьПриват() и получитьзащищено() которые возвращают значения переменных частных и защищенных свойств соответственно, а результат приведен ниже:
Заключение
PHP предлагает множество функций, и одна из них — ключевые слова, называемые модификаторами доступа. Эти модификаторы доступа обеспечивают различные шаблоны доступа к данным классов в программе PHP. В приведенном выше руководстве мы увидели разницу между модификаторами доступа с точки зрения доступности, инкапсуляции, гибкости и безопасности, которые предлагаются в PHP.