2013-05-30 2 views
0

클래스와 함께 PHP 4에서 작업하고 있지만 __autoload 함수가 없으므로 클래스가 서로 얽혀서 클래스를로드하는 데 문제가 있습니다.PHP 4 클래스 오토로더

클래스 I 클래스와 클래스 클래스가 있습니다. Ship 클래스는 Movement 객체를 포함하고 Movement 클래스는 Ship 객체를 포함합니다.

그래서 Ship을 요구할 때 클래스는 읽혀지고 새로운 Movement에 도달하면 반대로 오류가 발생합니다.

일부 솔루션은 무엇입니까? ;)

답변

0

PHP 4는 실제로 정말 오래되고 지원되지 않습니다. 가장 좋은 방법은 PHP 5로 이동하는 것입니다. 할 수 없다면, 상속의 경우 올바른 순서로 모든 클래스 정의가 필요한 부트 스트랩 파일을 만드십시오. 클래스 정의 파일에 $ obj = new Movement와 같은 실행 코드가 아닌 클래스 정의 만 포함되어 있는지 확인하고 실제로 응용 프로그램에서 실행중인 각 파일에이 파일이 필요합니다.

new Movement 문 앞에 Movement의 클래스 정의가 필요하지 않습니다.이 구문이 일부 Ship의 메서드에있는 경우 (생성자에 있어도) Ship.php를로드 한 다음 Movement를 안전하게로드 할 수 있습니다. .php 다음 코드를 실행하면 작동합니다.

또한 세션을 사용하고 세션을 사용하고 객체를 직렬화하는 경우 세션을 시작하기 전에 모든 클래스 정의를로드해야합니다.