Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Duda básica sobre php oo

Estas en el tema de Duda básica sobre php oo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Muy buenas. Tengo una duda bastante básica pero que no termino de entender. Si tengo un método: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original public function ...
  #1 (permalink)  
Antiguo 26/06/2012, 17:21
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Duda básica sobre php oo

Muy buenas.

Tengo una duda bastante básica pero que no termino de entender.

Si tengo un método:

Código PHP:
Ver original
  1. public function metodo($v){
  2. $this->var = $v;
  3. $var2 = $v;
  4. }
Que tiene de diferente usar el $this-> con el $var2 ???? no entiendo la diferencia entre estos dos elementos, porque para mi, a simple viste, se utilizarían igual :S

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 26/06/2012, 17:48
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Duda básica sobre php oo

$this hace referencia a la clase como tal, entonces si haces
Código PHP:
Ver original
  1. public function test() {
  2.     $this->var = 'xxxxxxx'; // es un atributo de la clase
  3.     $var = 'xxxx';// es una variable local en el método
  4. }
eun atributo lo tienes disponible en toda tu clase una variable local solo en el método que esta fue declarada, queda de ti saber cual usar en que momento, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 27/06/2012, 01:19
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Duda básica sobre php oo

Cita:
Iniciado por carlos_belisario Ver Mensaje
$this hace referencia a la clase como tal, entonces si haces
Código PHP:
Ver original
  1. public function test() {
  2.     $this->var = 'xxxxxxx'; // es un atributo de la clase
  3.     $var = 'xxxx';// es una variable local en el método
  4. }
eun atributo lo tienes disponible en toda tu clase una variable local solo en el método que esta fue declarada, queda de ti saber cual usar en que momento, saludos
MM bueno creo que lo entendí mejor jeje :)

Muchas gracias por tu ayuda !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #4 (permalink)  
Antiguo 30/06/2012, 01:23
 
Fecha de Ingreso: marzo-2010
Ubicación: Rosario
Mensajes: 20
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Duda básica sobre php oo

Es como dijo carlos.
Pero antes de usar $this->. Tenes que tener esa variable como global en la clase.

Un ejemplo para que se entienda mejor.

class Clase{

private $var; // tambien puede ser public o protected

public function test() {
$this->var = 'xxxxxxx'; // es un atributo de la clase
$var = 'xxxx';// es una variable local en el método
}

}

Lo que hace esa funcion con $this->var = 'xxx' es asignar el valor 'xxx' a la variable global VAR, que es gloabl al metodo. Donde pordrías usarla en otra funcion dentro ese metodo de la siguiente manera:

public function leer()
{
return $this->var;
}

entonces afuera haces.
$asd = new class;

$asd->test();
$lala = $asd->leer();

donde en $lala recuperas el valor de la variable VAR del objeto, con el cual setiaste en la funcion mediante $this->var.

Espero haberme explicado bien..

Saludos.
  #5 (permalink)  
Antiguo 30/06/2012, 06:22
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Duda básica sobre php oo

Cita:
Iniciado por force20 Ver Mensaje
Es como dijo carlos.
Pero antes de usar $this->. Tenes que tener esa variable como global en la clase.

Un ejemplo para que se entienda mejor.

class Clase{

private $var; // tambien puede ser public o protected

public function test() {
$this->var = 'xxxxxxx'; // es un atributo de la clase
$var = 'xxxx';// es una variable local en el método
}

}

Lo que hace esa funcion con $this->var = 'xxx' es asignar el valor 'xxx' a la variable global VAR, que es gloabl al metodo. Donde pordrías usarla en otra funcion dentro ese metodo de la siguiente manera:

public function leer()
{
return $this->var;
}

entonces afuera haces.
$asd = new class;

$asd->test();
$lala = $asd->leer();

donde en $lala recuperas el valor de la variable VAR del objeto, con el cual setiaste en la funcion mediante $this->var.

Espero haberme explicado bien..

Saludos.

Muchísimas gracias.

De 10 tu ejemplo también :D
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #6 (permalink)  
Antiguo 30/06/2012, 06:38
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Duda básica sobre php oo

Jask, te sugiero que leas la doc de PHP sobre propiedades, visibilidad y ámbito.
Y un comentario, $this hace referencia a la instancia y no a la clase.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 30/06/2012, 07:20
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Duda básica sobre php oo

Cita:
Iniciado por masterpuppet Ver Mensaje
Jask, te sugiero que leas la doc de PHP sobre propiedades, visibilidad y ámbito.
Y un comentario, $this hace referencia a la instancia y no a la clase.

Saludos.
Así lo haré :)

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: duda+php, php, php+oo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.