tipos metodos herencia funciones example ejemplos clases php methods method-chaining

metodos - ¿Cómo encadenar métodos en PHP?



php class example (4)

Coloque lo siguiente al final de cada método que desea hacer "encadenable":

return $this;

Esta pregunta ya tiene una respuesta aquí:

jQuery me permite encadenar métodos. También recuerdo haber visto lo mismo en PHP, así que escribí esto:

class cat { function meow() { echo "meow!"; } function purr() { echo "purr!"; } } $kitty = new cat; $kitty->meow()->purr();

No puedo hacer que la cadena funcione. Genera un error fatal justo después del maullido.


Para responder a su ejemplo de gato, los métodos de su gato deben devolver $this , que es la instancia del objeto actual. Entonces puedes encadenar tus métodos:

class cat { function meow() { echo "meow!"; return $this; } function purr() { echo "purr!"; return $this; } }

Ahora puedes hacer:

$kitty = new cat; $kitty->meow()->purr();

Para obtener un artículo realmente útil sobre el tema, consulte aquí: http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html


Simplemente devuelva $this de su método, es decir, (una referencia a) el objeto en sí:

class Foo() { function f() { // ... return $this; } }

Ahora puedes encadenar en el contenido del corazón:

$x = new Foo; $x->f()->f()->f();


sí, usando php 5 puedes devolver el objeto desde un método. Entonces al devolver $this (que apunta al objeto actual), puede lograr el método de encadenamiento