10. Propiedades y Constructores



Visibilidad

La visibilidad de una propiedad o un método se puede definir anteponiendo a su declaración una de las palabras reservadas public, protected o private.

public: Quiere decir que la propiedad se puede acceder y modificar fuera del «molde» (esqueleto o contexto) de la clase.

private: solo puede ser llamado desde otro método de la clase. Indica que no es posible ni leer ni reescribir la propiedad fuera de la clase.

protected: Un atributo o método protected puede ser accedido por la clase, por todas sus subclases pero no por los objetos.

Ejemplo

<?php
/**
 * Definición de MyClass
 */
class MyClass
{
    public $public = 'Public';          //Propiedad de tipo PubliC
    protected $protected = 'Protected'; //propiedad de tipo Protected
    private $private = 'Private';       //Propiedad de tipo Private

    function imprime()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

//Creamos un objeto d ela clase
$obj = new MyClass();
echo $obj->public;    // Funciona bien
echo $obj->protected; // Error Fatal
echo $obj->private;   // Error Fatal
$obj->imprime();   // Muestra Public, Protected y Private

 

Constructores

Se puede declarar métodos constructores para las clases. Aquellas que tengan un método constructor lo invocarán en cada nuevo objeto creado, lo que lo hace idóneo para cualquier inicialización que el objeto pueda necesitar antes de ser usado.

Ejemplo

<?php
//Creamos la Clase
class MyClass {

   //Creamos el método constructor de la clase
   function __construct() {
       echo "Soy el constructor";
   }
}

//Creamos el objeto del la Clase
$obj = new MyClass(); //Al crear el objeto se ejecuta el constructor y imprime

?>