类中的php链接函数
这份声明是怎么回事类中的php链接函数,php,oop,Php,Oop,这份声明是怎么回事 $this->load->view("index.php"); 我在CodeIgniter和其他地方见过这种语法,代码在类中,因此是“$this”,它引用“load”或其他方法,然后指向它看起来像的方法/函数 有人能给我解释一下这里面的“负载”是什么吗?不是在CodeIgniter上下文中,而是在普通PHP中。我如何编写一个类来实现这一点 我尝试了以下方法,但不起作用 <?php class myObject { private $x = 0;
$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();
?>
当我看到这一点时,我正试图了解实际发生的情况。在本例中,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
是一个对象的实例,因此可以继续运行该实例的函数。希望这会有所帮助。在PHP中,访问类成员变量需要$this->。这有点令人困惑,你必须严格地写这个->但另一方面你不必声明它
class Foo {
function bar() {
$this->myVariable = 8; // this is OK
} // bar()
} // class Foo
所以$this->load->view()引用当前对象的load属性,该属性包含一个具有view()方法的对象。训练你的眼睛剪下这个->的开头,训练你的手总是写它。正如您已经学会始终编写前导“$”标记一样。Load在您的示例中不是一种方法。这是一个属性,如果我不得不猜测的话,它包含一个方法为
view()
的对象。这是CI对象,load是控制器,view是方法。你所做的不是遵循这个模式。在您的例子中,取消嵌套该函数并将其与另一个函数放在同一级别,然后将其命名为$object->embeddedFunc()