클래스 자동 로드
많은 개발자가 객체 지향 애플리케이션을 작성할 때 각 클래스 정의에 대해 PHP 소스 파일을 생성합니다. 큰
성가심은 각 스크립트의 시작 부분에 포함 파일의 긴 목록을 작성해야 한다는 것입니다(클래스당 하나의 파일).
소프트웨어 개발 시스템에서는 PHP 파일에 모든 클래스를 작성하는 것이 불가능합니다.
PHP 파일이 다른 파일에 선언된 클래스를 호출해야 하는 경우 이 파일 가져오기를 포함해야 합니다. 하지만
파일이 많은 프로젝트에서는 필요한 클래스의 모든 파일을 하나씩 포함하는 것이 골치 아픈 경우가 있습니다.
언제든지 이 클래스가 있는 곳에 PHP 파일을 가져올 수 있나요? 위치? 이것이
여기서 이야기할 자동 로딩 클래스입니다.
PHP5에서는 아직 정의되지 않은 클래스를 사용하려고 할 때 자동으로 호출되는 __autoload() 함수를 정의할 수 있습니다. 이 함수를 호출하면 PHP가 실패하기 전에 스크립트 엔진이 마지막 함수를 갖게 됩니다. 오류가 발생했습니다.
__autoload() 함수에서 받은 매개변수 중 하나는 로드하려는 클래스의 클래스 이름이므로 프로젝트를 구성할 때 특정 규칙을 따라야 합니다. 규칙에 따라 클래스 이름을 중심으로 파일 이름을 정의하는 것이 가장 좋습니다. xxx_classname.php, classname_xxx와 같이 통일된 접두사 또는 접미사를 추가할 수도 있습니다. php 및 classname.php 등
이 예에서는 MyClass1.php 및 MyClass2.php 파일에서 각각 MyClass1 및 MyClass2 클래스를 로드하려고 시도합니다.
코드 조각
코드 복사
코드는 다음과 같습니다: function __autoload($classname) {
require_once $classname .
}
// __autoload() 함수를 자동 호출하기 위한 MyClass1 클래스가 존재하지 않습니다. "MyClass1" 매개변수를 전달합니다.
$obj = new MyClass1();
//MyClass2 클래스가 존재하지 않으면 자동으로 __autoload() 함수를 호출합니다. "MyClass2" 매개변수 전달
$ obj2 = new MyClass2()
위 내용은 객체지향 설계 원리를 소개한 PHP 객체지향 가이드(17) 객체지향 설계 원리를 포함하여 클래스 자동 로딩, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.