> 백엔드 개발 > PHP 문제 > PHP 항목 파일의 역할

PHP 항목 파일의 역할

藏色散人
풀어 주다: 2023-02-28 12:50:01
원래의
4014명이 탐색했습니다.

PHP 항목 파일의 역할

PHP 엔트리 파일의 역할

PHP 엔트리 파일은 자동 로딩 기능을 구현할 수 있습니다.

PHP 항목 파일을 구문 분석하는 자동 로딩 기능

PHP 자동 로딩:

php5 이전에 특정 클래스나 클래스 메서드를 사용하려면 사용하기 전에 다음 중 하나를 포함하거나 요구해야 합니다. 한 번에 클래스, 포함을 작성해야 합니다, 문제

PHP 작성자는 간단하게 만들고 싶어 클래스를 참조하는 것이 가장 좋습니다. 현재 포함이 없으면 시스템이 자동으로 클래스를 찾아 자동으로 소개할 수 있습니다. ~

그래서: __autoload() 함수가 탄생했습니다.

일반적으로 discuz와 같은 애플리케이션 항목 클래스에 배치되며 class_core.php에 배치됩니다.

추천: "PHP Tutorial"

먼저 간단한 예를 들어보겠습니다.

첫 번째 상황: A.php 파일의 내용은 다음과 같습니다

<?php
class A{
  public function __construct(){
         echo &#39;fff&#39;;
  }
}
?>
로그인 후 복사

C.php 파일의 내용은 다음과 같습니다. 다음:

<?php  
function __autoload($class)  
{  
$file = $class . &#39;.php&#39;;  
if (is_file($file)) {  
require_once($file);  
}  
}  
 
$a = new A(); //这边会自动调用__autoload,引入A.php文件
 
?>
로그인 후 복사

두 번째 경우: 가끔 자동 로드를 사용자 정의하고 로더에 더 멋진 이름을 지정하고 싶을 때 C.php를 다음과 같이 변경합니다.

<?php
function loader($class)
{
$file = $class . &#39;.php&#39;;
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register(&#39;loader&#39;); //注册一个自动加载方法,覆盖原有的__autoload
$a = new A();
?>
로그인 후 복사

세 번째 경우: 더 많은 이름을 지정하고 싶습니다. 정교하고 클래스를 사용하여 자동 로딩을 관리하려면

<?php  
class Loader  
{  
public static function loadClass($class)  
{  
$file = $class . &#39;.php&#39;;  
if (is_file($file)) {  
require_once($file);  
}  
}  
}  
 
spl_autoload_register(array(&#39;Loader&#39;, &#39;loadClass&#39;));  
 
$a = new A();
 
?>
로그인 후 복사

이 현재 가장 좋은 형태입니다.

보통은 입력 스크립트에 spl_autoload_register(*)를 넣습니다. 즉, 처음부터 인용합니다. 예를 들어 아래의 discuz 방법을 참조하세요.

if(function_exist(&#39;spl_autoload_register&#39;)){
 
  spl_autoload_register(array(&#39;core&#39;,&#39;autoload&#39;));  //如果是php5以上,存在注册函数,则注册自己写的core类中的autoload为自动加载函数
 
}else{
 
  function __autoload($class){         //如果不是,则重写php原生函数__autoload函数,让其调用自己的core中函数。
 
    return core::autoload($class);
 
  }
 
}
로그인 후 복사

이 문단을 응모파일 맨 앞에 놓으면 좋아요~

위 내용은 PHP 항목 파일의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿