Ver Mensaje Individual
  #15 (permalink)  
Antiguo 29/12/2004, 11:05
Avatar de Calisco
Calisco
 
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 9 meses
Puntos: 4
Operador de Ámbito de Resolución (::).

Operador de Ámbito de Resolución (::).
El Operador de Ambito de resolucion (tambien llamado Paamayim Nekudotayim) o en terminos simples, el doble 'dos puntos', es un simbolo que permite el acceso a propiedades o metodos estatic, protected y sobreescritos de una clase.
The Scope Resolution Operator (also called Paamayim Nekudotayim) or in simpler terms, the double colon, is a token that allows access to static, constant, and overridden members or methods of a class.

Cuando se referencia a estos items desde fuera de la definicion de la clase, se usa el nombre de la clase.
When referencing these items from outside the class definition, use the name of the class.


Paamayim Nekudotayim, al principio, pareceria ser una eleccion extraña para nombrar el doble-dospuntos, Sin embargo, mientras se estaba escribiendo el Zend Engine 0.5 (al cual mueve PHP 3), es que el equipo SEND decide llamarlo asi. Actualmente significa doble-dospuntos - en Hebreo !!
Paamayim Nekudotayim would, at first, seem like a strange choice for naming a double-colon. However, while writing the Zend Engine 0.5 (which powers PHP 3), that's what the Zend team decided to call it. It actually does mean double-colon - in Hebrew!

Ejemplo 19-10. :: desde fuera de la definicion de la clase
Código PHP:
<?php
class MiClase {
   const 
VALOR_CONSTANTE 'Un Valor constante';
}

echo 
MiClase::VALOR_CONSTANTE;
?>
Dos palabras reservadas self y parent son usadas para acceder a las propiedades y metodos desde dentro de la definicion de la clase.
Two special keywords self and parent are used to access members or methods from inside the class definition.


Ejemplo 19-11. :: desde dentro de la definicion de la clase

Código PHP:
<?php
class OtraClase extends MiClase
{
   public static 
$mi_estatica 'variable estatica';

   public static function 
dobleDosPuntos() {
       echo 
parent::VALOR_CONSTANTE "\n";
       echo 
self::$mi_estatica "\n";
   }
}

OtraClase::dobleDosPuntos();
?>
Cuando se sobreescribe o anula en una clase heredada la definicion de un metodo de la superclase, PHP no llamara al metodo madre. Se reemplaza por el metodo de la clase heredada o el metodo de la superclase no es llamado. Esto tambien se aplica a Constructores y Destructores, Sobrecarga y Definiciones de Metodos Magicos.
When an extending class overrides the parents definition of a method, PHP will not call the parent's method. It's up to the extended class on whether or not the parent's method is called. This also applies to Constructors and Destructors, Overloading, and Magic method definitions.
Help Again !!!

Ejemplo 19-12. Llamando metodos de la superclase
Código PHP:
<?php
class MiClase
{
   protected function 
miFuncion() {
       echo 
"MiClase::miFuncion()\n";
   }
}

class 
OtraClase extends MiClase
{
   
// se Anula la definicion de la superclase

   
public function miFuncion()
   {
       
// Pero todavia se llama a la funcion madre
       
parent::miFuncion();
       echo 
"OtraClase::miFuncion()\n";
   }
}

$clase = new OtraClase();
$clase->myFuncion();
?>
__________________
| Cabeza De Raton |

Última edición por Calisco; 29/12/2004 a las 11:44 Razón: mantenimiento