¿Cuál es la diferencia entre público, privado y protegido en PHP?

Cual Es La Diferencia Entre Publico Privado Y Protegido En Php



PHP es ampliamente utilizado para desarrollar sitios web dinámicos y aplicaciones web. PHP proporciona palabras clave conocidas como modificadores de acceso . Las propiedades del modificador de acceso se utilizan para acceder a la variable, clase o propiedades de clase de tres maneras diferentes, como público , privado, y protegido . En este artículo, discutiremos estos modificadores de acceso y determinaremos la diferencia entre estos tres modificadores de acceso en el lenguaje de programación PHP.

¿Qué son los modificadores de acceso en PHP?

En PHP, los modificadores de acceso son esenciales porque brindan a los usuarios la capacidad de regular la visibilidad y la accesibilidad de los atributos y métodos de clase. Como resultado de esto, proporciona encapsulación y seguridad de datos y, por lo tanto, los miembros de la clase están protegidos contra el acceso o la alteración no autorizados. Además, facilita el mantenimiento del código y la depuración.







Tipos de modificadores de acceso

Los tres modificadores de acceso que existen en PHP se analizan a continuación:



  • Público: Puede acceder a un método público desde fuera de la clase. Esto implica que cualquier código puede acceder, cambiar e invocar un método público.
  • Privado: El acceso al método privado está restringido a la propia clase. Esto implica que ninguno de los otros códigos, incluso si es una clase secundaria, puede acceder a un método privado o leer el valor privado.
  • Protegido: Solo se puede acceder a un método protegido dentro de una clase y las clases relacionadas con él; no se puede utilizar fuera de esas clases. Cualquier código fuente que necesite acceder a la instancia de la clase puede leer o alterar los datos de una propiedad protegida o invocar una función protegida.

Diferencia entre modificadores de acceso público, privado y protegido en PHP

Propiedad Público Privado Protegido
Accesibilidad Se puede acceder a estos modificadores de acceso desde cualquier lugar, como dentro y fuera del código. Los especificadores de acceso privado solo son accesibles dentro de la clase. Podría ser accesible dentro de la clase y sus clases y métodos relacionados (secundarios).
Flexibilidad La mayor flexibilidad la ofrecen los recursos públicos, ya que se puede acceder a ellos desde cualquier lugar. Dado que son accesibles exclusivamente dentro de la clase, estos métodos ofrecen la menor flexibilidad. El método protegido proporciona una flexibilidad moderada ya que las clases secundarias pueden acceder a estos métodos.
Encapsulación Otro código puede acceder o encapsular métodos públicos, pero el programador tiene control sobre esto. Un método privado está encapsulado dentro de la clase, lo que hace imposible que el código externo acceda a ellos o los actualice. Su proceso de encapsulación es el mismo que el método público en PHP.
Seguridad Los métodos públicos son accesibles desde cualquier lugar. Por lo tanto, proporcionan un bajo nivel de seguridad en el código. El máximo nivel de seguridad lo proporcionan los modificadores de acceso privado porque están totalmente contenidos dentro de la clase. Dado que solo pueden acceder a ellos los miembros de la clase y sus subclases, los modificadores de acceso protegido ofrecen un nivel razonable de seguridad.

Veamos la diferencia entre estos especificadores de acceso usando un ejemplo de programa simple en PHP.



Ejemplo: programa PHP con modificadores de acceso privado, público y protegido





El siguiente ejemplo demuestra la diferencia entre público, privado y protegido en un código de ejemplo:

< ?php
clase Mi Clase {
público $público = 'Público-variable. \norte ' ; // Se puede acceder desde cualquier lugar
privado $privado = 'Variable privada. \norte ' ; // Solo se puede acceder desde dentro de la clase.
protegido $protegido = 'Variable protegida'. ; // Se puede acceder dentro de la clase y cualquier subclase

público función getPrivate ( ) {
    devolver $esto - > privado;
  }

público función obtenerProtegido ( ) {
    devolver $esto - > protegido;
  }
}
$obj = nueva MiClase ( ) ;

eco $obj - > público;
eco $obj - > getPrivate ( ) ;
eco $obj - > obtenerProtegido ( ) ;
? >

 



En el programa anterior, definimos una clase como Mi clase con una propiedad pública como $público que podría acceder a cualquier lugar en código, una propiedad privada como $privado , y una propiedad protegida llamada $protegido , por lo tanto, no podemos acceder a los especificadores privados y protegidos directamente desde fuera de la clase. Como usamos dos métodos públicos llamados getPrivate() y getProtegido() que devuelven los valores de las variables de propiedades privadas y protegidas, respectivamente, y el resultado se muestra a continuación:

Conclusión

PHP ofrece muchas funcionalidades y una de ellas son las palabras clave llamadas modificadores de acceso. Estos modificadores de acceso proporcionan diferentes patrones de acceso a los datos de las clases en el programa PHP. En el tutorial anterior, hemos visto la diferencia entre los modificadores de acceso en términos de accesibilidad, encapsulación, flexibilidad y seguridad que se ofrecen en PHP.