Wie verkette ich Methoden in PHP? [duplicate]

Lesezeit: 1 Minute

Wie verkette ich Methoden in PHP duplicate
netrox

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

1641952987 504 Wie verkette ich Methoden in PHP duplicate
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;
 }
}

Jetzt können Sie Folgendes tun:

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

Einen wirklich hilfreichen Artikel zum Thema finden Sie hier: http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html

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();

1641952987 747 Wie verkette ich Methoden in PHP duplicate
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

.

407600cookie-checkWie verkette ich Methoden in PHP? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy