Encadenamiento de métodos en POO en PHP
Se puede hacer que los métodos puedan
ser llamados uno tras otro en cadena. Para
lograr esto, cada método de este tipo debe
retornar $this. Vamos a
probarlo. Añadamos el código correspondiente
a los setters de nuestra clase:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
return $this;
}
public function setSurn($surn) {
$this->surn = $surn;
return $this;
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Ahora nuestros setters se pueden llamar uno tras otro, en cadena. Vamos a comprobarlo. Creemos un objeto de nuestra clase:
<?php
$user = new User();
?>
Llamemos a nuestros setters en cadena:
<?php
$user->setName('john')->setSurn('smit');
?>
Comprobemos que los valores de las propiedades han cambiado:
<?php
echo $user->getName();
echo $user->getSurn();
?>
Haga que los setters
de la clase Employee se
puedan llamar en cadena.