类中的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()