Что означает $ это в CakePHP? - PullRequest
0 голосов
/ 07 ноября 2018

Я знаю, что в объектно-ориентированном программировании $ это относится к текущему объекту. Но в коде класса ArticlesController ниже,

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

$ this, кажется, относится к классу, который я хочу использовать, а именно к классу Articles. Я очень смущен тем, что происходит. Может ли $ this также использоваться таким образом?

1 Ответ

0 голосов
/ 07 ноября 2018

'$ 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();
...