Комментарии

Переменная $this и ключевые слова self и parent
( 0 Голосов )

Специальная переменная $this служит для обращения к текущему объекту из его класса. Так, в приведенном ниже примере метод getModel () вызывается из того же самого класса.

$model = $this->getModel();

А в следующей строке кода полю filter из того же самого класса присваивается значение, извлекаемое по ключу filter из ассоциативного массива.

$this->filter = $options['filter'];

Ключевое слово self служит для вызова статического метода или доступа к статическому полю из текущего класса. В приведенном ниже примере статический метод getGroupsByUser () вызывается из того же самого класса (в данном случае — из класса JAccess).

$identities = self::getGroupsByUser($userld);

А в следующей строке кода возвращается значение из статического поля $_buffer того же самого класса (в данном случае — класса JDocument).

return  self::$_buffer;

Ключевое слово parent служит для вызова метода или доступа к полю в родительском классе. Так, в приведенном ниже примере метод display () вызывается из родительского класса.

parent::display();

А в следующей строке кода возвращается значение из поля $_buffег того класса, который является родительским для текущего класса.

return parent:: $buffer;

Следует иметь в виду, что ключевое слово parent буквально означает "любой суперкласс", включая родительский, прародительский и т.д. Так, если класс А является родительским для класса В, а тот, в свою очередь, родительским для класса С, то класс А оказывается прародительским для класса С. Допустим, поле $myfield и метод myMethod () определены в классе А, а не в классе В или С. Если вызвать метод parent: : myMethod () из родительского класса, то соответствующий код будет выполнен в классе А. А если обратиться к полю parent: : $myfield, то его значение будет извлечено из класса А.


Понравился материал? Пригодилась информация? Плюсани в социалки!


Теги:
 
Похожие новости