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(); ?>
|
|