Código:
class a {
var $variable;
function estatica() {
if (isset($this)) {
return $this->otra();
}
}
function otra() {
return 'Hola mundo.';
}
}
class b {
function instanciada() {
return a::estatica();
}
}
$b = new b();
echo $b->instanciada();
El código de arriba es para PHP4, sé que muchos dirán "pasate a PHP5" pero igual veamos esto.
El código instancia una clase "b" y llama a un método de esta clase, ese método llama de forma estática a un método de la clase "a", dicho método hace una llamada a función a otro método usando una referencia $this... Obviamente esto no funcionaría porque el objeto no ha sido instanciado ($this no debería existir), pero curiosamente PHP4 encuentra instanciada la variable $this pero al hace la llamada a función return $this->otra(); se genera el siguiente error:
Fatal error: Call to undefined function: otra() in
PHPDocument1 on line
9.
Aparentemente no encuentra el método otra() en la clase "b", dado a que $this está haciendo referencia al objeto instanciado $b........