Codeigniter喜欢方法调用?

时间:2010-09-08 02:17:43

标签: php codeigniter

在codeigniter中,我们使用像这样的方法调用

$this->load->view();

我想知道什么是“负载”?它是一个功能还是什么?为什么它之后没有两个括号?我想在我的代码中做出类似的东西,这样我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

load,对象$this上的属性,是CI_Loader类的一个实例。它有一个名为view()的方法。

CodeIgniter以一种相当钝的方式实例化Loader对象,但您可以将其可视化为:

class Loader {
  function view($view_name) {
    echo "View '$view_name' loaded!";
  }
}

class FooController{
  public $load;

  function __construct() {
    $this->load = new Loader();
  }
}

$foo = new FooController();
$foo->load->view("bar"); // => "View 'bar' loaded!"
/* ^    ^     ^
   |    |     |
   |    |     +--- view() is a method on the Loader object assigned to $foo's 'load' property
   |    |
   |    +--------- 'load' is a property on $foo, to which we've assigned an object of class Loader
   |
   +-------------- $foo is an instance of class FooController
*/

答案 1 :(得分:0)

你会做这样的事情:

class Controller {
    public $load = new Loader();
    //...
}

然后,您可以访问$load上的属性和方法,如下所示:

$controller = new Controller();
$controller->load->foo();

在CI中,$load只是CI_Controller类的属性,是CI_Loader类的实例。