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

variable $this

Estas en el tema de variable $this en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy leyendo el manual de php y no me entero. Es la parte de cuando declarar $this. Dice: Cita: Nota: Usualmente, la pseudo-variable $this no ...
  #1 (permalink)  
Antiguo 30/09/2009, 02:48
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
variable $this

Estoy leyendo el manual de php y no me entero. Es la parte de cuando declarar $this. Dice:

Cita:
Nota: Usualmente, la pseudo-variable $this no es definida si el método en el que se encuentra es llamado estáticamente. Sin embargo, esta no es una regla estricta: $this se define si un método es llamado estáticamente desde el interior de otro objeto. En este caso, el valor de $this es aquél del objeto que hace la llamada. Esto se ilustra en el siguiente ejemplo:
Código:
<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this se define (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this no se define.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}
No entiendo varias cosas: No sé qué es eso de llamar estáticamente a un método, no sé a qué se refiere isset($this) porque isset lo conozco relacionado con el envío de datos por POST, pero en este contexto no sé a qué se refiere. No sé qué son esos dos puntos más dos puntos A:: foo(). Se supone que estoy empezando a leer sobre programación orientada a objetos por el principio, pero veo cosas que no entiendo. A lo mejor conocéis un tutorial que sea mejor para empezar.
  #2 (permalink)  
Antiguo 30/09/2009, 04:04
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: variable $this

isset = is set (esta seteado?) , se utiliza para muchisimas cosas aparte de comprobar variables de solicitud (request)

[clase]::[metodo] -> llama al metodo de una clase sin instancias osea sin new clase()

en este caso no esta seteada la variable $this porque el metodo esta corriento estaticamente desde otra clase.
  #3 (permalink)  
Antiguo 30/09/2009, 07:18
Avatar de andres013  
Fecha de Ingreso: febrero-2007
Ubicación: Bogotá Colombia
Mensajes: 222
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: variable $this

Hola,

El this en todos los lenguajes orientados a objetos significa lo mismo. Es uno de los mejores ejemplos de encapsulamiento y básicamente cuando encuentres un this puede ser reemplazado mentalmente por "este objeto."
__________________
Desarrollando Web: La guía para los desarrolladores web
http://www.desarrollandoweb.com
  #4 (permalink)  
Antiguo 30/09/2009, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: variable $this

El problema es que ese comportamiento pasaba en PHP4, ahora en PHP5, necesitas declarar la clase como estática para poder hacer eso y $this no va a existir y te marcará un error fatal.

Tema trasladado desde PHP General.
  #5 (permalink)  
Antiguo 30/09/2009, 11:17
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: variable $this

Que tal Paco

Ten en cuenta que el manual oficial, que bien es el mejor apoyo, es un "manual técnico de sintaxis del lenguaje", no un libro para aprender los conceptos generales. Deberías primero aprender los conceptos generales y luego, apoyado por el manual, ver la sintaxis particular según el lenguaje.

Por ejemplo:
  • $this : es la referencia a la propia instancia de la clase, cuando esta se está ejecutando puedes referenciar a elementos propios de ella, por ejemplo, un atributo y un método: $this->atributo, $this->metodo(). Hay lenguaje como java que esto es opcional, puede o no ir un this, pero en PHP es obligatorio.
  • :: sustituye el uso de -> y se aplica a lo mismo que el primer punto pero en un contexto donde no hay una instancia y la ejecución es a través de la clase, por ejemplo usando tanto el mismo nombre de la clase como "self" (en oposición a "this"): self::$ultimoId, Usuario::CONSTANTE, self::CONSTANTE, etc
  • isset : revisa el manual oficial http://www.php.net/isset
Resumiendo, aprende primero conceptos, luego te apoyas en un manual de sintaxis de acuerdo al lenguaje de turno.

Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #6 (permalink)  
Antiguo 01/10/2009, 08:48
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: variable $this

Enrique,

Tienes toda la razón, lo que ocurre es que los tutoriales que veo por ahí son muy básicos o bien dan por sabidas cosas. En fin que lo único que he encontrado que más o menos me sirve es esto. Snif.

He utilizado un curso básico de php y ya lo tengo superado, aunque al llevarlo a la práctica me encuentro con problemillas y problemones que suelo solucionar gracias a la amabilidad de la gente del foro. Pero no encuentro un tutorial para dar un paso adelante.

Si alguien me recomienda alguno se lo agradeceré.
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 01:36.