Использование $ 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, которое вызывает у меня двусмысленность.