【问题标题】:Return instance of the class (was "Property of class php")返回类的实例(是“类 php 的属性”)
【发布时间】:2012-06-14 02:01:45
【问题描述】:

您好,我是 OOP 的新手,我只是想问一下如何在不为每个函数放置返回类的情况下自动返回类的实例? 这是我的代码:

class myclass
{
    function myfinalOUtput()
    { 
        //blahblah
        return new myclass(); 
    }

    function get()
    { 
        //blahblah
        return new myclass();
    }

    function set()
    { 
        //blahblah
        return new myclass();
    }
} 

我想要类似的东西:

class myclass
{
    function myfinalOUtput()
    {}

    function get()
    {}

    function set()
    {}
} 

所以我可以这样做:

$class = new myclass();
$class->get()->set()->myfinalOUtput->();

【问题讨论】:

  • 只是好奇:您认为几个月后阅读您的代码时您会理解$class->get()->set()->myfinalOUtput->(); 吗?
  • 如果方法返回 $this ,您可以完成链接 .. 但是,恕我直言,这是一个非常糟糕的做法。此外,setters 不应返回任何内容。

标签: php oop class return


【解决方案1】:
return $this;

用它代替return new myclass(); ...这就是所需要的,它只是将对象传递回去。

【讨论】:

    【解决方案2】:

    它被称为Fluent interfacephp 的实现。

    【讨论】:

      【解决方案3】:

      你要找的是$this变量:

      class myclass
      {
          function myfinalOUtput()
          { 
              //blahblah
              return $this; 
          }
      
          function get()
          { 
              //blahblah
              return $this;
          }
      
          function set()
          { 
              //blahblah
              return $this;
          }
      }
      

      这将在方法结束时返回实例,以便您可以调用其他方法:

      $class = new myclass();
      $class->get()->set()->myFinalOutput();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        • 2017-11-01
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        • 2020-09-01
        • 1970-01-01
        相关资源
        最近更新 更多