PHP 엔트리 파일의 역할
PHP 엔트리 파일은 자동 로딩 기능을 구현할 수 있습니다.
PHP 항목 파일을 구문 분석하는 자동 로딩 기능
PHP 자동 로딩:
php5 이전에 특정 클래스나 클래스 메서드를 사용하려면 사용하기 전에 다음 중 하나를 포함하거나 요구해야 합니다. 한 번에 클래스, 포함을 작성해야 합니다, 문제
PHP 작성자는 간단하게 만들고 싶어 클래스를 참조하는 것이 가장 좋습니다. 현재 포함이 없으면 시스템이 자동으로 클래스를 찾아 자동으로 소개할 수 있습니다. ~
그래서: __autoload() 함수가 탄생했습니다.
일반적으로 discuz와 같은 애플리케이션 항목 클래스에 배치되며 class_core.php에 배치됩니다.
추천: "PHP Tutorial"
먼저 간단한 예를 들어보겠습니다.
첫 번째 상황: A.php 파일의 내용은 다음과 같습니다
<?php class A{ public function __construct(){ echo 'fff'; } } ?>
C.php 파일의 내용은 다음과 같습니다. 다음:
<?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); //这边会自动调用__autoload,引入A.php文件 ?>
두 번째 경우: 가끔 자동 로드를 사용자 정의하고 로더에 더 멋진 이름을 지정하고 싶을 때 C.php를 다음과 같이 변경합니다.
<?php function loader($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register('loader'); //注册一个自动加载方法,覆盖原有的__autoload $a = new A(); ?>
세 번째 경우: 더 많은 이름을 지정하고 싶습니다. 정교하고 클래스를 사용하여 자동 로딩을 관리하려면
<?php class Loader { public static function loadClass($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register(array('Loader', 'loadClass')); $a = new A(); ?>
이 현재 가장 좋은 형태입니다.
보통은 입력 스크립트에 spl_autoload_register(*)를 넣습니다. 즉, 처음부터 인용합니다. 예를 들어 아래의 discuz 방법을 참조하세요.
if(function_exist('spl_autoload_register')){ spl_autoload_register(array('core','autoload')); //如果是php5以上,存在注册函数,则注册自己写的core类中的autoload为自动加载函数 }else{ function __autoload($class){ //如果不是,则重写php原生函数__autoload函数,让其调用自己的core中函数。 return core::autoload($class); } }
이 문단을 응모파일 맨 앞에 놓으면 좋아요~
위 내용은 PHP 항목 파일의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!