如何在 PHP 中链接方法?
jQuery 让我可以链接方法。我还记得在 PHP 中看到过同样的情况,所以我写道:
class cat {
function meow() {
echo "meow!";
}
function purr() {
echo "purr!";
}
}
$kitty = new cat;
$kitty->meow()->purr();
我无法让链条工作。它在喵叫声之后立即生成一个致命错误。
jQuery lets me chain methods. I also remember seeing the same in PHP so I wrote this:
class cat {
function meow() {
echo "meow!";
}
function purr() {
echo "purr!";
}
}
$kitty = new cat;
$kitty->meow()->purr();
I cannot get the chain to work. It generates a fatal error right after the meow.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
要回答您的猫示例,您的猫的方法需要返回
$this
,它是当前对象实例。然后你可以链接你的方法:现在你可以这样做:
有关该主题的真正有用的文章,请参见此处:http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html
To answer your cat example, your cat's methods need to return
$this
, which is the current object instance. Then you can chain your methods:Now you can do:
For a really helpful article on the topic, see here: http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html
将以下内容放在您希望“可链接”的每个方法的末尾:
Place the following at the end of each method you wish to make "chainable":
只需从您的方法中返回
$this
即可,即(对)对象本身的引用:现在您可以在心里链接内容:
Just return
$this
from your method, i.e. (a reference to) the object itself:Now you can chain at heart's content:
是的,使用 php 5 你可以从方法返回对象。所以通过返回
$this
(指向当前对象),就可以实现方法链yes using php 5 you can return object from a method. So by returning
$this
(which points to the current object), you can achieve method chaining