Codeigniter 编写可链接函数

发布于 2024-12-10 19:34:46 字数 567 浏览 0 评论 0原文

我可以在 CodeIgniter 中编写可链接函数吗?

因此,如果我有这样的函数:

function generate_error(){
    return $data['result']      =   array('code'=> '0',
                                      'message'=> 'error brother');
}

function display_error(){
      $a= '<pre>';
      $a.= print_r($data);
      $a.= '</pre>';
      return $a;
}

我想通过链接它们来调用它们:

echo $this->generate_error()->display_error();

我想分离这些函数的原因是因为 display_error() 仅对开发有用,所以当涉及到生产时,我可以删除 display_error () 或类似的东西。

谢谢!

Can I write chainable functions in CodeIgniter?

So if I have functions like these :

function generate_error(){
    return $data['result']      =   array('code'=> '0',
                                      'message'=> 'error brother');
}

function display_error(){
      $a= '<pre>';
      $a.= print_r($data);
      $a.= '</pre>';
      return $a;
}

I want to call those by chaining them :

echo $this->generate_error()->display_error();

The reason why I want to seperate these functions are because display_error() is only useful for development, so when it comes to production, I can just remove the display_error() or something like that.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

捂风挽笑 2024-12-17 19:34:46

要编写可链接函数,它们必须是类的一部分,然后从该函数返回对当前类的引用(通常是 $this)。
如果您返回除类引用之外的任何内容,它将失败。

也可以返回对另一个类的引用(例如,当您使用代码点火器活动记录类 get() 函数时,它返回对 DBresult 类的引用)

class example {

  private $first = 0;
  private $second = 0;

  public function first($first = null){
    $this->first = $first;
    return $this;
  }

  public function second($second = null){
    $this->second = $second;
    return $this;
  }

  public function add(){
    return $this->first + $this->second;
  }
}

$example = new example();

//echo's 15
echo $example->first(5)->second(10)->add();

//will FAIL
echo $example->first(5)->add()->second(10);

To write chainable functions they musy be part of a class, from the function you then return a reference to the current class (usually $this).
If you return anything other than a reference to a class it will fail.

It is also possible to return a reference to another class (e.g. when you use the code igniter active records class get() function it returns a reference to the DBresult class)

class example {

  private $first = 0;
  private $second = 0;

  public function first($first = null){
    $this->first = $first;
    return $this;
  }

  public function second($second = null){
    $this->second = $second;
    return $this;
  }

  public function add(){
    return $this->first + $this->second;
  }
}

$example = new example();

//echo's 15
echo $example->first(5)->second(10)->add();

//will FAIL
echo $example->first(5)->add()->second(10);
深居我梦 2024-12-17 19:34:46

你应该在你的函数中返回 $this 来在 php oop 中创建可链接的函数


public function example()
{ 
 // your function content
 return $this;
}

you should return $this in your function to make chain-able functions in php oop


public function example()
{ 
 // your function content
 return $this;
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文