Ver Mensaje Individual
  #16 (permalink)  
Antiguo 11/02/2013, 22:00
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Funciones recursivas no devuelven 'nada'

Claro que es posible que uses $this, si incluyes el archivo dentro del método.

El problema aquí es el contexto, no es lo mismo que definas la función (usando $this) y la llames dentro del método o fuera de él.

Revisa este ejemplo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. class Foo
  4. {
  5.     public function bar()
  6.     {
  7.         echo 'bar';
  8.     }
  9.  
  10.     public function sayBar()
  11.     {
  12.         $this->bar();
  13.     }
  14.  
  15.     public function inSayBar()
  16.     {
  17.         include('test.php');
  18.     }
  19. }
  20.  
  21. $f = new Foo();
  22. $f->sayBar(); // Bien usas $this
  23. $f->inSayBar(); // aca sirve pero no es "lo mejor"
  24. sayBar(); // ups fatal error
test.php
Código PHP:
Ver original
  1. <?php
  2. $this->bar();
  3.  
  4. function sayBar()
  5. {
  6.     $this->bar();
  7. }

Como puedes ver $this no se comporta igual aunque lo tengas en el mismo archivo, y el problema es como bien te dijo @pateketrueke, el contexto de donde estas usando $this.

Saludos.