PHP의 클래스 자동 로딩 인스턴스 분석

小云云
풀어 주다: 2023-03-22 20:26:02
원래의
1300명이 탐색했습니다.

PHP의 다른 파일에서 PHP 코드를 사용해야 하는 경우에는 include, include_once, require, require_once를 사용하여 클래스 파일을 도입할 수 있습니다. require와 include의 차이점은 구문 엄격성의 차이입니다. 가져온 파일에서 오류가 발생하면 include 구문을 사용하여 오류가 보고되지만 후속 명령문은 계속 실행됩니다. require는 오류가 발생한 후 실행을 중지합니다.

include와 include_once의 차이점은 include를 사용하면 존재할 때 한 번만 가져오고, include_once는 동일한 파일을 가져올 때 한 번만 가져옵니다.

일반적으로 가져온 파일이 많이 포함되어 사용될 수 있으므로, include/require 문을 많이 작성해야 합니다. 이런 상황에서는 자동 로딩을 사용할 수 있습니다.

1. __autoload() 마법 함수를 사용하세요:

프로그램이 "클래스를 요구"하면 시스템은 자동으로 이 함수를 호출하며, 이 함수는 스스로 정의해야 합니다:

function __autoload($className){
	require "需要引入文件的路径(不包含文件名)".$className.".php";
}
로그인 후 복사

변수 $className이 자동으로 호출됩니다. 이 함수는 전달된 클래스 이름입니다.

2. spl_autoload_register() 함수를 사용합니다:

여러 __autoload() 함수를 선언하는 데 사용합니다.

spl_autoload_register("function name 1") spl_autoload_register("function name 2" );..... .이 함수는 실제로 __autoload()와 동일합니다.

//此处声明三个自动加载函数名,
spl_autoload_register('auto1');
spl_autoload_register('auto2');
spl_autoload_register('auto2');
//接下来需要定义所声明的函数。
function auto1($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
function auto2($className){
	$file="文件路径".$className.".php";
	if(file_exists($file)){
		require $file;
	}
}
로그인 후 복사
在使用该方法时,需要类时,会按照声明的顺序先从auto1()调用,如果有的话就引入,如果不存在,就到下一个函数调用......
로그인 후 복사

spl_autoload_register()와 __autoload()의 차이점은 spl_autoload_register()가 파일 경로에 다른 파일을 도입할 수 있다는 것입니다. 그리고 spl_autoload_register()가 파일에 등록되면 __autoload() 메서드는 자동으로 유효하지 않습니다.

관련 추천:

PHP는 자동 로딩 기능을 구현합니다

PHP는 라우팅 및 클래스 자동 로딩을 구현합니다

PHP는 관련 기능의 자동 로딩을 구현합니다

위 내용은 PHP의 클래스 자동 로딩 인스턴스 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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