| Atención |
Lo siguiente es válido únicamente para PHP 4 y
versiones posteriores.
|
Algunas veces es útil referirse a funciones y variables en
clases base o referirse a funciones en clases que no tienen aun
alguna instancia. El operador :: es usado en tales casos.
El ejemplo anterior llama la función ejemplo() en la clase
A, pero no hay un objeto de la clase A, asà que no podemos
escribir $a->ejemplo() o algo semejante. En su lugar llamamos
ejemplo() como una 'función de clase', es decir, una
función de la clase misma, no de un objeto de tal clase.
Existen funciones de clase, pero no existen variables de clase. De
hecho, no hay un objeto en absoluto al momento de la llamada. Por
lo tanto, una función de clase no puede usar variables del
objeto (pero puede usar variables locales y globales), y
quizás no pueda usar $this en absoluto.
En el ejemplo anterior, la clase B redefine la función
ejemplo(). La definición original en la clase A es cubierta
y ya no se encuentra disponible, a menos que haga referencia
especÃficamente a la implementación de ejemplo() en
la clase A usando el operador ::. Escriba A::ejemplo() para
hacerlo (en realidad, deberÃa usar parent::ejemplo(), como
se muestra en la siguiente sección).
En este contexto, hay un objeto actual y puede tener variables de
objeto. Por lo tanto, cuando se usa DESDE EL INTERIOR de una
función de objeto, es posible usar $this
y variables de objeto.