Alcance del operador de resolución (::)

El alcance del operador de resolución (también llamado Paamayim Nekudotayim) o en términos simples, dobles dos puntos, es un símbolo que permite acceso a los miembros o métodos estaticos, constantes, y eliminados de una clase.

Cuando se referencín estos elementos desde aufera de la definición de la clase, usan el nombre de la clase.

Paamayin Nekudotayim podrí, en principio, parecer una extraña elección para nombrar un doble-dos-puntos. Sin embargo, mientras se escribia el compilador Zend 0.5, (el cuál da fuerza a PHP 3), ese fue el nombre que el equipo decidió darle. En realidad significa doble-dos-puntos ¡en Hebreo!.

Ejemplo 19-10. :: desde afuera de la definición de la clase

<?php
class MyClass {
    const
CONST_VALUE = 'A constant value';
}

echo
MyClass::CONST_VALUE;
?>

Dos palabras reservadas self y parent son usadas para accesar los miembros o métodos desde adentro de la definición de la clase.

Ejemplo 19-11. :: desde dentro de la definición de la clase

<?php
class OtherClass extends MyClass
{
    
public static $my_static = 'static var';

    
public static function doubleColon() {
        echo
parent::CONST_VALUE . "\n";
        echo
self::$my_static . "\n";
    }
}

OtherClass::doubleColon();
?>

Cuando al extender una clase se elimina las definiciones de un método de la clase padre, PHP no llamará el método de la clase padre. Es opcional a la clase extendida decidir si se deba llamar al método de la clase padre. Esto también aplica a Constructores y Destructores, Sobrecarga, y definición de los métodos Magico.

Ejemplo 19-12. Llamando al método de la clase padre

<?php
class MyClass
{
    
protected function myFunc() {
        echo
"MyClass::myFunc()\n";
    }
}

class
OtherClass extends MyClass
{
    
// Override parent's definition
    
public function myFunc()
    {
        
// But still call the parent function
        
parent::myFunc();
        echo
"OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>

Hosting by: hurra.com
Generated: 2007-01-26 18:00:52