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

significado de...

Estas en el tema de significado de... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Saludos, para demostrar que estoy empezando con php oo alguien me puede decir como se debe interpretar la siguiente linea de codigo? Código PHP: $this ...
  #1 (permalink)  
Antiguo 01/07/2006, 21:04
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
significado de...

Saludos, para demostrar que estoy empezando con php oo
alguien me puede decir como se debe interpretar la siguiente linea de codigo?

Código PHP:
$this->session->db 
Sólo siendo lo bastante genericos , con eso basta

gracias

Última edición por under_ground; 01/07/2006 a las 22:25
  #2 (permalink)  
Antiguo 02/07/2006, 08:23
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
"$this" es la representación, dentro de una clase determinada, de un elemento (atributo/método) que pertenece a la misma.

Ejemplo, dentro de la clase Persona, para poder acceder internamente a sus atributos o métodos, uso "$this->nombre", "$this->getEdad()", etc.

Cuando se vuelve a anidar una "flecha", estás invocando un atributo/método del elemento que estás accediendo, ahorrando "1 paso" y no creando una instancia en una variable (se usa mucho en Java).

Ejemplo:

Si estamos dentro de la clase "Escuela" que tiene una "colección" de alumnos, podríamos hacer algo así para saber la edad del alumno número "23":
Código PHP:
$edadAlumno $this->getAlumno(23)->getEdad(); 
Que es lo mismo que hacer:

Código PHP:
$unAlumno $this->getAlumno(23);
$edadAlumno $unAlumno->getEdad(); 
Consejo/Sugerencia: no abusar de este tipo de sintaxis, pues pueden facilitar mucho la programación, pero hacer menos entendible el código (principalmente para programadores que no somos nosotros).

¿Se entiende un poco más?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #3 (permalink)  
Antiguo 02/07/2006, 08:44
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
guauu me has ayudado bastante, tenia algunos conceptos de poo, pero hace tiempo que no me enfrentaba a un desarrollo.

desde ya te agradezco y te hago otra consulta para reafirmar lo anteriormente expuesto.

Código PHP:
$edadAlumno $this->getAlumno(23)->getEdad(); 
Al plantear esto, quiere decir que en la clase alumno tenemos ambas funciones o metodos, es decir,

Código PHP:
function getAlumno(){
....
}

function 
getEdad(){
...

Estaría en lo correcto, cierto¡?
  #4 (permalink)  
Antiguo 02/07/2006, 08:50
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Solo getEdad pertenece a Alumno, el getAlumno pertenece a la Escuela y devuelve una instancia de alumno. Alumno no se debería llamar a si mismo, si no, la clase Escuela que "conoce" a sus alumnos.

Se entiende? razoná los ejemplos un poco más.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 02/07/2006, 09:47
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 19 años
Puntos: 1
Perfecto, ya voy masticando esto...una consulta más, estás serian 2 clases distintas ? (Alumno y Escuela) o se encuentran dentro de la misma clase...


De todas formas gracias por tus respuestas ¡

Última edición por under_ground; 02/07/2006 a las 10:33
  #6 (permalink)  
Antiguo 02/07/2006, 13:57
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Si, son dos clases distintas.

Por ejemplo:

Código PHP:
class Escuela{
   private 
$listaAlumnos;

   public function 
getAlumno($nro){
      
$alumno $this->rutinaDeBusqueda($nro);
      return 
$alumno// objeto
   
}
}

class 
Alumno{
   private 
$nombre;
   private 
$fechaNacimiento;

   public 
getEdad(){
      
$edad $this->formulaParaCalcularEdad($this->fechaNacimiento);
      return 
$edad;
   }

Sugerencia, lee menos sintaxis de PHP y busca lecturas teóricas que tengan que ver con "Orientación a Objetos", ejemplos, ejercicios, etc.

Y fundamental, desde mi punto de vista, antes de programar deberías empezar aprendiendo UML (simplifica mucho el entendimiento y la abstracción de los diseños).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 00:43.