首页 > 解决方案 > CakePHP 中的 $this 是什么意思?

问题描述

我知道在面向对象编程中, $this 指的是当前对象。但是在下面ArticlesController类的代码中,

public function index()
{
    $articles = $this->Articles->find('all');
    $this->set(compact('articles'));
}

'$this' 似乎是指我要使用的类,即 Articles 类。我对正在发生的事情感到非常困惑。$this 也可以这样使用吗?

标签: phpoopcakephpthis

解决方案


'$this' 似乎是指我要使用的类,即 Articles 类。$this 也可以这样使用吗?

$this不引用ArticlesTable类,但$this->Articles确实如此。

您的ArticlesController类有一个名为的属性Articles,它是ArticlesTable该类的一个实例。

这是如何完成的示例

class ArticlesController
{
    private $Articles;

    public function __construct()
    {
        $this->Articles = new ArticlesTable();
    }

    public function index()
    {
        $articles = $this->Articles->find('all');
    }
}

class ArticlesTable
{
    public function find()
    {
        echo "find method called";
    }
}

$controller = new ArticlesController();
$controller->index();

推荐阅读