首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -方法链接-最佳方法?

PHP -方法链接-最佳方法?
EN

Stack Overflow用户
提问于 2015-09-16 08:16:22
回答 2查看 48关注 0票数 3

我需要一种没有从URL生成的面包屑的方法。

我的思维过程是有一个类,“面包屑”,它的工作方式是:

代码语言:javascript
复制
$breadcrumbs = new BreadCrumb('<<')->crumb('www.google.com', 'Google')->crumb('www.youtube.com', 'Youtube');

它将生成一个数组,并且与每个方法链一起,它将向后推到数组中,从而生成一个数组,然后我可以将其转换为URL结构。

我尝试了以下几点:

代码语言:javascript
复制
class Breadcrumbs {

    public $del; 
    public $breadcrumbs;

    public function __construct($del)
    {
        $this->breadcrumbs = array();
        $this->del = $del;  

    }

    public function crumb($uri, $name)
    {
         $this->breadcrumbs[] = array($uri => $name);
    }
}

然而,这并没有提供一个准确的结果,并且在尝试按照我的计划执行结构时得到‘意外’- trying‘>’‘.

你知道我哪里出错了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-16 08:30:33

  1. 要进行方法链接,您需要从方法调用返回一个对象。通常,您会希望: 返回$this;// in函数crumb()
  2. 实例化对象并立即对其调用方法的正确语法是: (新BreadCrumb(‘<<’))->crumb(.) 如果没有额外的括号,对于PHP来说,您想要做的事情是不明确的。
  3. 旁白:您不需要在构造函数中初始化数组,您可以在声明数组时这样做: public $breadcrumbs = array();
  4. 旁白:这相当低效: 。。=数组($uri => $name) 您将很难将该$uri键从数组中取出,这会使您的代码不必要地复杂。你应该简单地做: $this->面包屑$uri= $name; 或者,如果您的URI不能保证是唯一的,那么使用一种以后更容易使用的结构: $this->breadcrumbs[] = array($uri,$name);// $arr是URI,$arr1是名称
票数 5
EN

Stack Overflow用户

发布于 2015-09-16 08:19:05

您需要从$this返回crumb,以便能够进行方法链接。

代码语言:javascript
复制
public function crumb($uri, $name)
{
     $this->breadcrumbs[] = array($uri => $name);
     return $this;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32603147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档