Я изучаю компиляцию классов, последовательность и логику.
Если я объявляю класс перед простым родителем:
class First extends Second{}
class Second{}
Это будет работать нормально. См. живые примеры в версиях PHP.
Но если родительский класс также имеет некоторых еще не объявленных родителей (расширяет или реализует), как в этом примере:
class First extends Second{}
class Second extends Third{}
class Third{}
У меня будет ошибка:
Неустранимая ошибка: Класс "Второй" не найден...
См. живой пример в версиях PHP.
Итак, почему во втором примере он не может найти класс Second?
Может быть, php не может скомпилировать этот класс, потому что ему нужно также компилировать класс Third, или что?
Я пытаюсь выяснить, почему в первом примере PHP компилирует класс Second, но если он будет иметь некоторые родительские классы, это не будет. Я много исследовал, но ничего точно.
- Я не пытаюсь писать код таким образом, но в этом примере я пытаюсь понять, как работает компиляция и ее последовательность.