PHP 4 действительно, действительно старый и не поддерживается. Лучшим вариантом является переход на PHP 5. Если вы не можете создать файл начальной загрузки, для которого требуются все определения классов (в правильном порядке в случае наследования); убедитесь, что файлы определения класса содержат только определение класса (а не исполняемый код, например $ obj = new Movement) и требуют этого файла в каждом файле, который вы фактически используете в своем приложении.
Дело в том, что определение класса Movement не требуется перед оператором new Movement
, и если этот оператор находится в некотором методе Ship (даже если он есть в конструкторе), вы можете безопасно загрузить Ship.php, затем Movement .php, затем запустите код, и он будет работать.
Кроме того, перед началом сеанса обязательно загрузите все определения классов, если вы используете сеансы и сериализуете в нем объекты.