외부 페이지에서는 클래스 파일을 도입할 필요가 없지만 프로그램은 필요할 때 자동으로 클래스를 "동적으로 로드"합니다.
__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>
위에서는 PHP의 자동 로딩에 대해 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.