jQuery lässt mich Methoden verketten. Ich erinnere mich auch, dass ich dasselbe in PHP gesehen habe, also habe ich Folgendes geschrieben:
class cat {
function meow() {
echo "meow!";
}
function purr() {
echo "purr!";
}
}
$kitty = new cat;
$kitty->meow()->purr();
Ich kann die Kette nicht zum Laufen bringen. Es erzeugt einen fatalen Fehler direkt nach dem Miauen.
Das Beispiel mit Kitty ist viel anschaulicher 😉
– sumid
31. Januar ’13 um 2:09
Zachary Murray
Um Ihr Katzenbeispiel zu beantworten, müssen die Methoden Ihrer Katze zurückkehren $this, die die aktuelle Objektinstanz ist. Dann können Sie Ihre Methoden verketten:
class cat {
function meow() {
echo "meow!";
return $this;
}
function purr() {
echo "purr!";
return $this;
}
}
Fügen Sie am Ende jeder Methode, die Sie “verkettbar” machen möchten, Folgendes ein:
return $this;
Komm einfach zurück $this aus Ihrer Methode, dh (einer Referenz auf) dem Objekt selbst:
class Foo()
{
function f()
{
// ...
return $this;
}
}
Jetzt können Sie nach Herzenslust verketten:
$x = new Foo;
$x->f()->f()->f();
Ankush Jetly
Ja, mit PHP 5 können Sie ein Objekt von einer Methode zurückgeben. Also bei der Rückkehr $this (die auf das aktuelle Objekt zeigt), können Sie eine Methodenverkettung erreichen
.
4076000cookie-checkWie verkette ich Methoden in PHP? [duplicate]yes
Das Beispiel mit Kitty ist viel anschaulicher 😉
– sumid
31. Januar ’13 um 2:09