如何在PHP中链接方法?

2022-08-30 18:14:16

jQuery让我链接方法。我还记得在PHP中看到过同样的东西,所以我写了这个:

class cat {
 function meow() {
 echo "meow!";
 }

function purr() {
 echo "purr!";
 }
}

$kitty = new cat;

$kitty->meow()->purr();

我无法让链条工作。它会在喵喵声之后立即生成致命错误。


答案 1

要回答你的猫的例子,你的猫的方法需要返回,这是当前对象实例。然后,您可以链接您的方法:$this

class cat {
 function meow() {
  echo "meow!";
  return $this;
 }

 function purr() {
  echo "purr!";
  return $this;
 }
}

现在,您可以执行以下操作:

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

有关该主题的真正有用的文章,请参阅此处:http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html


答案 2

将以下内容放在您希望“可链接”的每个方法的末尾:

return $this;

推荐