本声明中发生了什么?
$this->load->view("index.php");
我在CodeIgniter和其他地方看到过这种语法,其中代码在一个类中,因此是“$ this”,它引用“load”或其他一些方法然后指向它看起来像的方法/函数。
有人可以向我解释一下“装载”是什么吗?不在CodeIgniter上下文中,而是通用PHP。我怎么写一个允许这个的课?
我尝试了以下但它不起作用。
<?php
class myObject {
private $x = 0;
function amethod()
{
function embeddedFunc()
{
$this->x += 7;
return $this->x;
}
return embeddedFunc();
}
}
$object = new myObject();
echo $object->amethod->embeddedFunc();
?>
当我看到这一点时,我正试图绕过实际发生的事情。
答案 0 :(得分:1)
在这种情况下,load是类的属性,该类是具有view()
函数的对象。例如:
class test {
public $load;
public function __construct() {
$this->load = new test2();
}
public function step1() {
$this->load->step3('Updated text');
}
}
class test2 {
public function step3($display_text) {
echo $display_text;
}
}
$tester = new test();
$tester->step1();
由于load
是对象的实例,因此您可以继续运行该实例的函数。希望这会有所帮助。
答案 1 :(得分:0)
在PHP中, $ this-&gt; 是访问类成员变量所必需的。这有点令人困惑,你必须严格地写 this-&gt; ,但另一方面你不必声明它。
class Foo {
function bar() {
$this->myVariable = 8; // this is OK
} // bar()
} // class Foo
所以 $ this-&gt; load-&gt; view()指的是当前对象的 load 属性,该属性包含一个具有view()方法的对象。训练你的眼睛切割领先 this-&gt; 并训练你的手总是写它。就像你已经学会了总是写出'$'标记一样。