Ce n' “return $this” signifie?
J'essaie de comprendre ce code, et quand je suis arrivé à la dernière ligne, je n'ai pas l'obtenir. 🙁
Puis-je avoir votre aide afin de trouver, ce n' return $this
veux dire ?
public function setOptions(array $options) {
$methods = get_class_methods($this);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
//???? - return what ?
return $this;
}
Mise à jour:
J'ai supprimé mes commentaires pour une meilleure clarification.
- de retour de l'objet courant
- Double Possible de [11072965][1] [1]: stackoverflow.com/questions/11072965/...
- Cela signifie beaucoup un copain.
Vous devez vous connecter pour publier un commentaire.
Ce mode de codage est appelé interface fluide.
return $this
retourne l'état courant de l'objet, de sorte que vous pouvez écrire du code comme ceci:au lieu de:
return $this
à la fin de toutes nos méthodes à des fins de commodité ?Doctrine_Query
classe.Pour revenir à l'exemple de cette méthode est appelée. Généralement, cela se fait pour la réalisation de couramment interfaces de sorte que vous pouvez appeler ce genre de choses:
Où les deux
setOptions
etsayHello
serait appelée sur le même objet.$this
désigne l'objet courant, l'un, la méthode est actuellement en cours d'exécution sur. En retournant$this
une référence à l'objet de la méthode de travail est renvoyé à la fonction appelante.Donc, quiconque fait de
$foo2 réfère maintenant à $foo aussi.
$ce serait la classe qui contient la fonction.
Donc, si vous avez été de l'appeler comme:
$obj->setOptions($options)
il va return $obj, qui a été fixé avec les nouvelles options. Généralement quand quelque chose est définie comme ceci, vous n'avez pas à capturer le retour, parce que cela affecte l'objet lui-même, mais il le fait si vous pouvez l'utiliser en ligne.
vous ne pouvez tout simplement créer une fonction de la chaîne
vous pouvez donc utiliser cette
Si la méthode SetOptions fait partie d'un ProgramOptions de la classe ou de quelque chose, $cela se référer à la classe contenant la méthode, de sorte que vous serait de passer à l'arrière d'une instance de ProgramOptions.
Sa commune de la programmation orientée objet technique appelée Interface Fluide. Il a pour principal objectif de l'aide de la chaîne de multiples appels à la méthode dans les langues, qui ne prennent pas en charge la méthode en cascade, comme PHP. Donc
sera de retour un jour instance(objet) de la classe de sorte qu'il peut faire un autre appel dans son champ d'application. Voir l'exemple en PHP,