Что такое точно последние статические связывания в PHP?
Вам обязательно нужно прочитать Late Static Bindings в руководстве по PHP. Однако я постараюсь дать вам краткое изложение.
По сути, все сводится к тому, что ключевое слово self
не подчиняется тем же правилам наследования. self
всегда преобразуется в класс, в котором он используется. Это означает, что если вы создаете метод в родительском классе и вызываете его из дочернего класса, self
не будет ссылаться на дочерний элемент, как вы могли ожидать.
Позднее статическое связывание вводит новое использование для static
ключевое слово, которое устраняет этот конкретный недостаток. Когда вы используете static
, он представляет класс, в котором вы его впервые используете, т.е. он «привязывается» к классу среды выполнения.
Это две основные концепции, лежащие в основе этого. То, как self
, parent
и static
работают, когда задействовано static
, может быть незаметным, поэтому вместо того, чтобы вдаваться в подробности, Я настоятельно рекомендую вам изучить примеры страниц руководства. Как только вы поймете основы каждого ключевого слова, примеры совершенно необходимы, чтобы увидеть, какие результаты вы собираетесь получить.