如何创建像laravel这样的类来连续调用类方法
Posted
技术标签:
【中文标题】如何创建像laravel这样的类来连续调用类方法【英文标题】:how to create class like laravel to call class methodes consecutive 【发布时间】:2022-01-17 04:16:27 【问题描述】:大家好,我的问题是如何编写诸如 laravel 之类的类。 我认为这种类型的类更易于使用 代码示例:
ClassName::method1('value')->method2('value')->method3('value');
如果你的注意力方法是使用连续的
我在 laravel 的路线部分看到了这种类,所以我对这个类很感兴趣,我想在我自己的程序中使用它!
这种方式在加载时有效吗?
我很乐意为您提供示例 如果你能解释一下
谢谢。
【问题讨论】:
在 Google 上查找“php Method Chaining”或“PHP Fluid Interface”并阅读其中的一些结果。基本原理是每个方法都返回“自身”,因此您可以将它们链接在一起,但是如果您足够努力地搜索它们,有很多关于如何做到这一点的教程。 【参考方案1】:以下示例可能有助于理解方法链的概念。
方法one()
、two()
和three()
在返回当前对象之前分别设置一个属性,使用return $this
。
返回$this
(对象)允许链接方法,因为您可以在返回的对象上调用另一个方法:
<?php
class Movie
private string $one = '';
private string $two = '';
private string $three = '';
public function one(): object
$this->one = "One ";
return $this; // return object
public function two(): object
$this->two = "Flew Over the ";
return $this; // return object
public function three(): object
$this->three = "Cuckoo's Nest";
return $this; // return object
public function show(): string
return $this->one . $this->two . $this->three;
$movie = new Movie();
echo $movie->one()->two()->three()->show();
查看action
【讨论】:
以上是关于如何创建像laravel这样的类来连续调用类方法的主要内容,如果未能解决你的问题,请参考以下文章