Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   que significa this->atrib->metod(); (https://www.clubdelphi.com/foros/showthread.php?t=52781)

gabrielflowers 30-01-2008 21:50:04

que significa this->atrib->metod();
 
me he topado con este tipo de instrucciones que quisiera me ayuden a entender:
Código PHP:

$this->atrib->metod($param); 

claro aparentemente pareciera que se esta llamando al atributo atrib de nuestro propio objeto, pero luego se hace referencia a ->metod($param); y eso me parece raro, que significa??

dec 30-01-2008 21:56:17

Hola,

"$this" hace referencia, desde dentro de un objeto, al propio objeto en que se trabaja. Es como el "Self" de Delphi, si te suena de algo. "atrib" es ahí un miembro del objeto en cuestión. Y, dicho miembro, debe ser a su vez un objeto, que al menos cuenta con un método ("metod") que es ejecutado.

jhonny 30-01-2008 21:57:32

Cita:

Empezado por gabrielflowers (Mensaje 262245)
me he topado con este tipo de instrucciones que quisiera me ayuden a entender:
Código PHP:

this->atrib->metod($param); 

claro aparentemente pareciera que se esta llamando al atributo atrib de nuestra propia clase, pero luego se hace referencia a ->metod($param); y eso me parece raro, que significa??

Bueno, debe ser una función que pertenece al atributo de la clase llamado atrib, cuyo tipo de atrib tambien debe ser una clase.

keyboy 30-01-2008 21:58:17

Cuando defines un método de una clase, this se refiere al objeto en particular que se use cuando se llame a ese método. Esto es, si tienes una clase:

Código PHP:

class Persona
{
  function 
saluda()
  {
    ...
  }


y tienes varios objetos de esa clase:

Código PHP:

$p = new Persona();
$q = new Persona(); 

Si usas:

Código PHP:

$q->saluda(); 

dentro de la función saluda, this será $q (y no $p, por ejemplo).

La flecha -> sirve para referirse a los métodos a propiedades de una clase. Así, en tu ejemplo, method es un método de atrib, que asu vez debe ser una propiedad del objeto donde estás usando this.

Bye

jhonny 30-01-2008 22:00:16

Cita:

Empezado por dec (Mensaje 262249)
Hola,

"$this" hace referencia, desde dentro de un objeto, al propio objeto en que se trabaja. Es como el "Self" de Delphi, si te suena de algo. "atrib" es ahí un miembro del objeto en cuestión. Y, dicho miembro, debe ser a su vez un objeto, que al menos cuenta con un método ("metod") que es ejecutado.

Eso, como en Delphi :). Aunque la explicación mas detallada a sido la de keyboy :).

gabrielflowers 30-01-2008 22:00:32

mas o menos eso supuse
 
gracias, eso de $this ya lo sabia, la ultima parte en la que se llama a un metodo desde un atributo del objeto, era la que me hacia pensar, pero tambien paso por mi cabeza que ese atributo podria ser otro objeto declarado dentro del objeto principal, y simplemente se esta llamando a un metodo del primer mencionado, gracias


La franja horaria es GMT +2. Ahora son las 10:15:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi