Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Чем отличаются static, self и parent в php?

Собственно хотелось бы увидеть различие работы со static:: от parent:: и self::


Ответ

parent - вызываем родительский метод (не обязательно статичный), self - вызываем метод именно этого класса, static - вызываем метод текущего класса. Разница между self и static хорошо видна, например, когда вы делаете new self() или new static() - в первом случае будет создан объект класса, где упомянут self (т.е. создан родитель), во втором - объект того класса, где вызывается метод (т.е. потомок)
примеры можно посмотреть здесь. "когда применять" - всегда, если только вам не нужен именно текущий класс, а не его наследники. Не знаю когда это может понадобиться, поэтому можете использовать static всегда, потом меньше проблем будет )
в документации можно почитать эту статью, там как раз описано отличие static и self и прочее
(ответ перенесён из комментариев BOPOH)

Комментариев нет:

Отправить комментарий