Ver Mensaje Individual
  #13 (permalink)  
Antiguo 09/08/2008, 09:33
Avatar de emiliodeg
emiliodeg
 
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 6 meses
Puntos: 55
Respuesta: duda con el uso del this

vertrigo, es facil de entender mira

cuando tu haces $obj=new Objeto(); estas creando una instancia de la clase y en ella $this es la referencia del mismo dentro del objeto, ademas necesariamente para usar new vas a necesitar la funcion constructora ya sea utilizando __construct() o el mismo nombre de la calse en una funcion, ahora si tu usas
$obj=Objeto::algunMetodo(); ahora no estas creando ninguna instancia, es como si el Objeto::algunMetodo() fuera una simple funcion, y como no se creo la isntancia dentro del objeto no existe $this y la unica forma de moverse dentro es usando self o el mismo nombre de la clase

Código PHP:
class A  {
public 
unavariable='';
public function 
__construct(){$this->unavariable='inicializado en constructor';}
public static function 
algunMetodo(){self::$unavariable='inicializado en algunmetodo';}
public function 
mostrarDatos(){echo (isset($this))?$this->unavariable:self::$unavariable;}

entonces si tu haces

$o=new A(); //crea instancia y asigna valor
$o->mostrarDatos(); // imprime incializado en constructor

pero si tu haces

A::algunMetodo(); //asigna el valor
A::mostrarDatos(); //imprime inicializado en algunmetodo

espero se entienda un poco mejor
saludos
__________________
Degiovanni Emilio
developtus.com