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