Что такое точно последние статические связывания в PHP?

Что такое точно последние статические связывания в PHP?

125
задан Mark Amery 5 February 2015 в 19:51
поделиться

1 ответ

Вам обязательно нужно прочитать Late Static Bindings в руководстве по PHP. Однако я постараюсь дать вам краткое изложение.

По сути, все сводится к тому, что ключевое слово self не подчиняется тем же правилам наследования. self всегда преобразуется в класс, в котором он используется. Это означает, что если вы создаете метод в родительском классе и вызываете его из дочернего класса, self не будет ссылаться на дочерний элемент, как вы могли ожидать.

Позднее статическое связывание вводит новое использование для static ключевое слово, которое устраняет этот конкретный недостаток. Когда вы используете static , он представляет класс, в котором вы его впервые используете, т.е. он «привязывается» к классу среды выполнения.

Это две основные концепции, лежащие в основе этого. То, как self , parent и static работают, когда задействовано static , может быть незаметным, поэтому вместо того, чтобы вдаваться в подробности, Я настоятельно рекомендую вам изучить примеры страниц руководства. Как только вы поймете основы каждого ключевого слова, примеры совершенно необходимы, чтобы увидеть, какие результаты вы собираетесь получить.

188
ответ дан 24 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: