Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/08/2008, 13:19
Avatar de emiliodeg
emiliodeg
 
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Respuesta: Que significa esto

según el manual de php

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í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();
?>
__________________
Degiovanni Emilio
developtus.com