>  기사  >  백엔드 개발  >  PHP 자동 로딩

PHP 자동 로딩

WBOY
WBOY원래의
2016-07-29 09:02:17909검색

클래스 자동 로드

외부 페이지에서는 클래스 파일을 도입할 필요가 없지만 프로그램은 필요할 때 자동으로 클래스를 "동적으로 로드"합니다.

  • 객체 new 생성 시
  • 클래스 이름 직접 사용(정적 속성 및 메서드 운용)

__autoload 매직 함수 사용
두 가지 상황이 발생하면 이 함수가 호출됩니다. 이 함수를 사용하려면 미리 정의하고 클래스 파일을 로드하기 위한 일반 명령문을 작성해야 합니다.

<code><span><span>function</span><span>__autoload</span><span>(<span>$name</span>)</span>{</span><span>require</span><span>'./lib/'</span>.<span>$name</span>.<span>'.class.php'</span>;
}</code>

spl_autoload_register() 사용
__autoload()를 대체할 수 있는 여러 함수를 등록(선언)할 때 사용합니다. 당연히 이러한 함수를 정의해야 하며 함수의 기능은 __autoload()와 동일하지만 이번에는 더 많은 상황을 처리할 수 있습니다

<code><span>//注册用于自动加载的函数</span>
spl_autoload_register(<span>"model"</span>);
spl_autoload_register(<span>"controll"</span>);
<span>//分别定义两个函数</span><span><span>function</span><span>model</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}
<span>//如果需要一个类,但当前页面还没加载该类</span><span>//就会依次调用model()和controll(),直到找到该类文件加载,否则就报错</span><span><span>function</span><span>controll</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}</code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위에서는 PHP의 자동 로딩에 대해 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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