>  기사  >  백엔드 개발  >  참고 019 spl_autoload_register를 통한 자동 로딩

참고 019 spl_autoload_register를 통한 자동 로딩

黄舟
黄舟원래의
2016-12-26 10:13:351094검색

spl_autoload_register

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_register — 지정된 함수를 __autoload 구현으로 등록

구문

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

설명

이 함수를 통해 클래스를 로드할 수 있습니다. 어드레싱 모드를 지정하므로 대량으로 요구하거나 포함할 필요가 없습니다. 시스템은 자동으로 지정된 규칙을 따르고 해당 위치로 이동하여 인스턴스화해야 하는 클래스를 찾습니다. 이 방법은 상대적으로 낮은 수준이지만 프레임워크가 있으면 일반적으로 이 작업을 수행할 필요가 없습니다. 하지만 사용해야 할 때가 여전히 있을 수 밖에 없습니다. 예를 들어 이 블로그를 작성할 때 스크립트를 직접 수정해야 했던 경우에는 방법이 없습니다. 아래 예는 내 스크립트에 사용되는 간단한 자동 로딩 프로그램입니다.

예제

spl_autoload_register(function ($class) {
    $rootPath = realpath(sprintf('%s/..', __DIR__));
    $paths = array(        'src',
    );    foreach ($paths as $path) {        if (is_file(
            $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class
            . '.php'
        )) {            include $file;            break;
        }
    }
});

익명 함수는 PHP 5.3 이상에서만 사용할 수 있다는 점에 유의하세요. 사용할 수 없는 경우 PHP 버전을 확인하세요. 여기서는 src 폴더에서 검색할 모든 클래스를 지정하기만 하면 됩니다. 클래스 이름은 파일 이름과 정확히 동일합니다.

위 내용은 spl_autoload_register를 통해 자동 로딩을 구현한 Note 019의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.