Использование $ this, self ::, parent :: для удобства чтения кода

Я хотел бы знать, является ли приемлемым / предпочтительным использование self :: method () и parent :: method () при работе в классах php.

Вы можете использовать метод $ this- & gt; (), но $ this- & gt; также может ссылаться на переменную класса, родительскую переменную класса или метод из родительского класса. Там нет никакой двусмысленности в себе ::

Является ли self :: обесцененным и / или есть какие-то предостережения или недостатки в использовании этого стиля?

Я понимаю, что self :: и parent :: ссылаются на статический экземпляр класса, но в кохане, если только вы не определите метод как статический, похоже, нет никакой разницы.

Благодарю.

Добавил пример: Предполагая, что это приложение хранит форумы с нескольких веб-сайтов ...

class Forum_Controller extends Controller {

    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        echo self::categories();
    }

/*
 * get a list of categories from a specific site.
 */
    private function categories()
    {
        $db = new Database;
        $categories = $db->query("
            SELECT * FROM
            forum_categories
            WHERE fk_site = '$this->site_id'
        ");
        $view = new View('categories_view');
        $view->categories = $categories;
        return $view;
    }

}

Этот пример работает в Kohana с отчетом об ошибках, установленным в: сообщение об ошибке (E_ALL & amp; ~ E_STRICT);

$ this-> site_id определен в основном классе Controller_Core (библиотека в кохане).

Насколько я знаю, $ this не должен быть доступен, так как я вызываю self :: Categories () статическим способом, но только когда я определяю category () как статический, он выдает ошибку.

Но, как я уже сказал, я скорее предпочитаю использовать self ::, потому что с точки зрения читабельности я точно знаю, где должна быть эта функция, а не использование $ this, которое вызывает у меня двусмысленность.

Ответы на вопрос(6)

Ваш ответ на вопрос