PHP 클래스 파일 함수 자동 불 러 오기autoload 의 사용 방법
PHP 에서 개발 한 시스템 에 서 는 한 파일 에서 다른 PHP 파일 에 설 명 된 클래스 를 호출 해 야 할 때 include 나 require 를 통 해 이 파일 을 도입 해 야 합 니 다.그러나 어떤 때 는 파일 이 많은 항목 에 필요 한 종류의 파일 을 일일이 포함 시 키 는 것 이 골 치 아 픈 일 입 니 다.그래서 우 리 는 어떤 종 류 를 사용 할 때 이런 종류의 phop 파일 을 가 져 올 수 있 습 니까?이것 이 바로 우리 가 말 하고 자 하 는 자동 로드 클래스 입 니 다.
PHP 5 에 서 는
__autoload()
함 수 를 정의 할 수 있 습 니 다.정의 되 지 않 은 클래스 를 사용 하려 고 할 때 자동 으로 호출 됩 니 다.이 함 수 를 호출 하면 스 크 립 트 엔진 이 PHP 오류 가 발생 하기 전에 필요 한 클래스 를 불 러 올 수 있 는 마지막 기회 가 있 습 니 다.autoload()함수 가 받 은 매개 변 수 는 바로 불 러 오고 싶 은 클래스 의 클래스 이름 입 니 다.따라서 프로젝트 를 할 때 클래스 의 파일 이름 을 조직 할 때 일정한 규칙 에 따라 클래스 이름 을 중심 으로 하 는 것 이 좋 습 니 다.또한 통 일 된 접두사 나 접 두 사 를 추가 하여 파일 이름 을 만 들 수도 있 습 니 다.예 를 들 어xxx_classname.php
,classname_xxx.php
,그리고classname.php
등 입 니 다.우 리 는 하나의 예 로 를 설명 한다.autoload 의 사용 방법 은 ClassA.php 와 ClassB.php 파일 에서 각각 ClassA 와 ClassB 클래스 를 불 러 옵 니 다.
<?php
// ClassA, ClassA.php
class ClassA{
public function __construct(){
echo "ClassA load success!";
}
}
?>
<?php
// ClassB, ClassB.php,ClassB ClassA
class ClassB extends ClassA {
public function __construct(){
echo "ClassB load success!";
}
}
?>
<?php
function __autoload($classname)
{
$classpath="./".$classname.'.php';
if(file_exists($classpath)){
require_once($classpath);
}
else{
echo 'class file'.$classpath.'not found!';
}
}
//ClassA , __autoload() , ”ClassA”
$obj = new ClassA();
//ClassB , __autoload() , ”ClassB”
$obj2 = new ClassB();
?>
위의 예 를 들 어 우 리 는 ClassA 와 ClassB 를 사용 할 때 ClassA.php 와 ClassB.php 파일 을 수 동 으로 도입 하지 않 았 지만 이 두 가지 종 류 를 정상적으로 사용 할 수 있 음 을 알 수 있 습 니 다.autoload 가 얼마나 좋 은 지.하지만 사용 하고 있 습 니 다autoload 에서 도 일부 문 제 를 주의해 야 합 니 다.예 를 들 어 위의 ClassB 류 는 ClassA 류 를 계승 한 것 입 니 다.이때 ClassA 와 ClassB 가 같은 디 렉 터 리 에 없 을 때 오류 가 발생 하기 때문에 extends 관계 가 존재 하 는 모든 종 류 를 같은 파일 디 렉 터 리 에 두 거나 하나의 계승 류 를 예화 할 때 파일 에 계승 되 는 종 류 를 수 동 으로 포함 하 는 것 을 권장 합 니 다.또 하 나 는 자동 으로 함 수 를 불 러 올 때 클래스 이름과 파일 이름 의 대응 관 계 를 주의해 야 한 다 는 것 이다.
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.