herencia - Cómo encadenar objetos en PHP5: $ this-> foo-> bar-> baz()
herencia multiple php (3)
Para encadenar llamadas de función como esa, generalmente retorna a sí mismo (o a esto) de la función.
¿Cómo hago objetos encadenados en clases PHP5? Ejemplos:
$myclass->foo->bar->baz();
$this->foo->bar->baz();
Not: $myclass->foo()->bar()->baz();
Ver también:
http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html
Siempre que su $ myclass tenga un miembro / propiedad que sea una instancia en sí, funcionará así.
class foo {
public $bar;
}
class bar {
public function hello() {
return "hello world";
}
}
$myclass = new foo();
$myclass->bar = new bar();
print $myclass->bar->hello();
en realidad, esta pregunta es ambigua ... para mí la respuesta de @ Geo es correcta.
Lo que (@Anti) dice podría ser composición
Este es mi ejemplo para esto:
<?php
class Greeting {
private $what;
private $who;
public function say($what) {
$this->what = $what;
return $this;
}
public function to($who) {
$this->who = $who;
return $this;
}
public function __toString() {
return sprintf("%s %s/n", $this->what, $this->who);
}
}
$greeting = new Greeting();
echo $greeting->say(''hola'')->to(''gabriel''); // will print: hola gabriel
?>