이 글에서는 주로 PHP에서 클래스를 자동으로 로드하는 방법을 소개합니다. 클래스 자동 로드는 외부 페이지에 클래스 파일을 "소개"할 필요가 없지만 필요할 때 프로그램이 필요한 클래스 파일을 동적으로 로드한다는 의미입니다.
클래스 자동 로드는 외부 페이지에 클래스 파일을 "도입"할 필요가 없지만 필요할 때 프로그램이 필요한 클래스 파일을 동적으로 로드한다는 의미입니다. 프로그램에 특정 클래스가 필요할 때 이 함수를 직접 정의하고 클래스 파일을 로드하기 위한 일반 명령문을 작성해야 합니다. 그것. .<?php //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A function autoload($className){ require "./21".$className.".class.php"; } $o1 = new A(); $o1->v1 = 10; echo "<br/>v1:".$o1->v1; ?>
방법 2: spl_autoload_register 함수 사용
이 함수의 함수는 자동 로드 함수를 대체하는 데 사용할 수 있는 여러 함수를 만드는 것입니다. 구문은 다음과 같습니다. 이름 1"); spl_autoload_register를 사용하는 경우 자동 로드가 유효하지 않습니다.<?php //注册两个用于自动加载的函数名 spl_autoload_register('auto1'); spl_autoload_register('auto2'); function auto1($className){ $file = "./21".$className.".class.php"; if(file_exists($file)){ require "./21".$className.".class.php"; } } function auto1($className){ $file = "./22".$className.".class.php"; if(file_exists($file)){ require "./22".$className.".class.php"; } } //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载 ?>
class_xxx.php
xxx.class.php
xxx.php
php 코드는 다음과 같습니다.
function autoload($className){ $dirs=explode('_',$className); $fileName=array_pop($dirs); //print_r($dirs); $filePath=$fileName; if(is_array($dirs) && (count($dirs) > 0)){ //echo '\n---\n'; print_r($dirs); $dirPath=''; foreach ($dirs as $dir){ if($dir){ $dirPath.=strtolower($dir).DIRECTORY_SEPARATOR; } } $filePath=$dirPath.$fileName.'.php'; }else { if( file_exists('class_'.$fileName.'.php')){ $filePath='class_'.$fileName.'.php'; }else { if( file_exists($fileName.'.class.php')){ $filePath=$fileName.'.class.php'; } else { $filePath=$fileName.'.php'; } } } //var_dump($filePath); require $filePath; }
위 내용은 PHP의 클래스 자동 로딩 방법에 대한 몇 가지 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!