En este capítulo hablaremos sobre la visibilidad. Existen 3 formas de declarar propiedades o métodos dentro de la clase:
- Declarar de forma pública: public
- Declarar de forma privada: private
- Declarar de forma protegida: protected
Si declaramos a una propiedad como protegida o privada no vamos a poder acceder directamente a su valor. Si la declaramos como pública no hay problema. La única forma que vamos a tener para acceder a dichas propiedades es mediante algún método que hayamos definido dentro de nuestra propia clase.
Cuando no definimos ninguna palabra reservada delante de una propiedad o método, se sobreentiende que va a ser público.
Encapsulamiento
A este proceso en el cual decidimos la forma de declarar nuestras propiedades u objetos se le conoce como encapsulamiento.
Diferencia entre protegida y privada
La propiedad pública es de acceso común desde cualquier parte, la propiedad protegida puede ser accedida desde la propia clase y también desde la clase que se extiende o subclase, la propiedad privada sólo puede ser accedida desde la propia clase donde se ha declarado como privada. Por otro lado, sólo vamos a poder modificar las propiedades públicas y protegidas, las privadas desde una subclase.
Ejm
<?php
class MyClass {
public $public = "Public";
protected $protected = "Protected";
private $private = "Private";
function printHello(){
echo $this->public . "<br />";
echo $this->protected . "<br />";
echo $this->private . "<br />";
}
}
$objeto = new MyClass;
echo $objeto->public;
echo "<br />";
echo "<br />";
// echo $objeto->protected; VA A DAR ERROR YA QUE ES PROTETIDO
// echo $objeto->private; VA A DAR ERROR YA QUE ES PRIVADO
echo $objeto->printHello();