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ían estos elementos desde afuera 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!.
Example#1 :: 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.
Example#2 :: 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 Mágico.
Example#3 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();
?>