这实际上是什么意思>笨

时间:2011-08-24 19:33:18

标签: php codeigniter

我知道愚蠢的问题,

从所有教程中,他们都没有解释为什么他们使用$ this。

$ this是否是Codeigniter中基类的对象?

任何解释都会受到欢迎! :)

由于

6 个答案:

答案 0 :(得分:18)

要实际回答您的问题,$this实际上代表单身Codeigniter实例(实际上是控制器对象)。

例如,当您加载库/模型时,您将它们附加到此实例,以便您可以将它们作为此实例的属性引用。

在codeigniter中获取此实例的另一种方法是在构建可移植库时使用的get_instance()函数。

答案 1 :(得分:7)

PHP中的

$this是当前对象。在类定义中,使用$this来处理当前对象。以这堂课为例:

class Hello {
  public $data = 'hello';
  function hi() {
    $this->data = 'hi';
  }
}

您可以多次实例化此类,但$data只会在您调用该函数的对象中更改为hi

$one = new Hello;
$two = new Hello;
$two->hi();

echo $one->data, "\n", $two->data;

答案 2 :(得分:6)

$this不是来自CodeIgniter,而是来自PHP。 $this指的是当前对象。

每当你创建这样的实例时:

$something = new SomeClass();

然后$this指的是从SomeClass创建的实例,在本例中为$something。无论何时进入类本身,都可以使用$this来引用此实例。 所以:

class SomeClass {

  public $stuff = 'Some stuff';

  public function doStuff()
  {
    $this->stuff;
  }

}

答案 3 :(得分:4)

就codeigniter而言:
您会注意到codeigniter中的每个控制器都扩展了基本控制器类。在控制器中使用$this可以访问控制器中定义的所有内容,以及从基本控制器继承的内容。

您将从$this中获得的大部分用途都涉及调用基类为您加载的方法 - $this->load$this->uri等。

如果我没记错的话,视图中的PHP代码在控制器的上下文中运行,因此您也可以从那里访问带有$this的控制器对象。

答案 4 :(得分:1)

我刚读了一篇关于$ this和一般课程的好文章:http://query7.com/using-this-in-php

  

在PHP中,关键字“$ this”用作类的自引用   您可以使用它来调用和使用这些属性和方法   如下例所示。

答案 5 :(得分:0)

这是从内部引用类的实例的方法,与许多其他面向对象的语言相同。从PHP文档:当从对象上下文中调用方法时,伪变量$ this可用。 ... $ this主要用于引用类的属性