合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
以下是thinkphp的Collection源码 ~~~ class Collection { protected $items = []; public function __construct($items = []) { $this->items = $this->convertToArray($items); } // 静态方法创建一个Collection实例 public static function make($items = []) { return new static($items); } } ~~~ 这是一个通用套路,yii2里面也是这么写,都是这么写。 public的static方法保证了不用实例化就可以调用make方法,一旦调用,则调用__construct,存入item数组参数,返回一个Collection对象。 * * * * * 我们可以在paginator源码里面看到如何调用的 ~~~ if (!$items instanceof Collection) { $items = Collection::make($items); } ~~~ 再看$items是如何用的 ~~~ $items->slice($this->listRows, 1); ~~~ slice是Collection类中的public方法 也就是说,传入一个item数组参数,通过make方法,返回一个Collection对象。