愚蠢的问题,我知道,
从所有他们没有解释他们为什么使用$此教程。
$是否像Codeigniter中的基类一样?
任何解释都会受到欢迎! :)
感谢
愚蠢的问题,我知道,
从所有他们没有解释他们为什么使用$此教程。
$是否像Codeigniter中的基类一样?
任何解释都会受到欢迎! :)
感谢
我刚刚读了一篇关于$本和类一般:http://query7.com/using-this-in-php
在PHP中,关键字“$这个”被用作一类的自参考和 您可以使用它来调用和使用以下示例中显示的 这些属性和方法。
$this
在PHP中是当前对象。在类定义中,您使用$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;
当然这是关于'$ this'通用含义的精美教程,但并没有专门针对codeigniter,这就是问题所在。 – jondavidjohn
$this
不来自CodeIgniter,但来自PHP。 $this
引用当前对象。
当你创建这样一个实例:
$something = new SomeClass();
然后$this
指的是从SomeClass
创建的,在这种情况下$something
实例。每当你在课堂上时,你可以使用$this
来引用这个实例。 所以:
class SomeClass {
public $stuff = 'Some stuff';
public function doStuff()
{
$this->stuff;
}
}
CI中的术语:
你会发现,在笨每个控制器扩展了基控制器类。在控制器中使用$this
可让您访问控制器中定义的所有内容,以及从基本控制器继承的内容。
大多使用,你会离开$this
的涉及调用其基类加载你的方法 -
如果我没有记错,在视图中的PHP代码在运行$this->load
,$this->uri
等。控制器的上下文,因此您可以从那里访问控制器对象$this
。
如果我们不写'$ this'会怎么样呢?由于其在C++中的工作?我们可以使用'this'或不使用'this'来编写任何数据成员,在C++中我们可以在PHP中做什么? –
@BilalMaqsood - 不,PHP不支持该语法。 –
要实际上答案您的问题,$this
实际上代表单身Codeigniter实例(实际上是控制器对象)。
例如,当您加载库/模型时,您将它们附加到此实例,以便您可以将它们作为此实例的属性引用。
在codeigniter中获取此实例的另一种方法是在构建可移植库时使用的get_instance()
函数。
这是从本身内引用类的实例的方式,与许多其他面向对象的语言一样。从PHP文档:当在对象上下文中调用方法时,伪变量$ this可用。 ... $这主要用于引用一个类别的属性
这并没有增加6年前这个问题的答案。 –
http://www.php.net/manual/en/language.oop5.basic.php介绍'$ this'本身。 – mario