Utilizando self y parent en PHP

Operador de resolución ::

El Operador de Resolución (::) también conocido como Paamayim Nekudotayim que significa doble-dos-puntos en Hebreo.
Este nombre se lo dieron al escribir el compilador Zend 0.5

Para usar este operador desde fuera de una clase basta con poner el nombre de la clase seguida del operador(::) y el nombre de la constante(por ejemplo) para poder ser llamada.

 

class Clase1
{
    const CONSTANTE = 'Hola desde la Clase1! ';
}

echo Clase1::CONSTANTE;

self y parent

Cuando queramos accesar a una constante o metodo estatico por ejemplo desde dentro de la clase podemos usar esta palabra reservada.
self.

Cuando queramos acceder a una constante o metodo de una clase padre, la palabra reservada parent nos sirve para llamarla desde una clase extendida.

class Clase2 extends Clase1
{
    public static $variable = ' static';

    public static function miFuncion()
    {
        echo parent::CONSTANTE;

        echo self::$variable;
    }
}

Clase2::miFuncion() //-> Hola! static

Un caso es cuando en una clase extendida se vuelva a declarar el mismo metodo eliminando las definiciones y cambiando su Visibilidad del metodo de la clase padre.

Lo que hara es ya no llamar al metodo de la clase padre, pero si se requiere se podría hacer con la palabra reservada parent, esto también se aplica en Constructores y Destructores y definición de los metodos mágicos.

class ClasePadre
{
    protected function miFuncion()
    {
    	echo ' Metodo Padre ';
    }
}

class ClaseExtendida extends ClasePadre
{
	public function miFuncion()
    {
    	parent::miFuncion;
        echo ' Metodo hijo';
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *