Codeigniter编写可链接的函数

时间:2011-10-19 03:05:36

标签: codeigniter

我可以在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()或类似的东西。

谢谢!

2 个答案:

答案 0 :(得分:2)

要编写可链接函数,他们可以成为类的一部分,然后从函数中返回对当前类的引用(通常为$this)。 如果你返回的不是对类的引用,它将会失败。

也可以返回对另一个类的引用(例如,当您使用代码igniter活动记录类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);

答案 1 :(得分:0)

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


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