>백엔드 개발 >PHP 튜토리얼 >PHP에서 include() 함수와 require() 함수의 차이점은 무엇입니까?

PHP에서 include() 함수와 require() 함수의 차이점은 무엇입니까?

不言
不言원래의
2018-08-07 10:55:453194검색

이 글의 내용은 PHP의 include() 함수와 require() 함수의 차이점에 대한 내용입니다. 필요한 친구들이 참고하면 좋을 것 같습니다.

PHP의 include와 require의 차이점에 대해 인터넷에 너무 많은 내용이 있습니다. 사실, 어떤 말도 검증을 견딜 수 없습니다. 나는 무작위로 다음과 같은 스크린샷을 찾았습니다:


그리고 그것을 맹세하게 설명했습니다: include()는 조건부 포함 함수이고 require()는 무조건 포함 함수입니다.

그런데 이건 오래전부터 있었던 일입니다. 현재 PHP에서는 require와 include 사이에 차이가 있습니다. 저자가 테스트한 버전은 5.3 이상입니다.

이 두 구조가 좋은 것만은 아닙니다. 성능 및 포함 실패 처리 방법을 제외하고 다른 모든 것은 정확히 동일합니다.

1. 성능 면에서는

테스트 결과 require와 include 사이에 성능 차이가 별로 없는 것으로 나타났습니다. 이 부분은 고려할 필요가 없다고 생각합니다(샘플을 충분히 테스트하지 않았을 수도 있습니다)

<pre name="code" class="php">$startTime=time();
$startMemoryUsed=memory_get_usage();  
require "a1.inc";
$endMemoryUsed=memory_get_usage();
$endTime=time();
$usedMemory=($endMemoryUsed-$startMemoryUsed)/1024; 
print_r($usedMemory);//1.6171875
echo &#39;</br>&#39;;
print_r($endTime-$startTime);
/*$startTime=time();
$startMemoryUsed=memory_get_usage();  
include "a1.inc";
$endMemoryUsed=memory_get_usage();  
$endTime=time();
$usedMemory=($endMemoryUsed-$startMemoryUsed)/1024; 
print_r($usedMemory);//1.6171875
print_r($endTime-$startTime);*/

2 . 오류 처리 측면에서

포함이 ​​실패하면 include()는 경고를 생성하고 계속 실행되지만 require()는 치명적인 오류가 발생합니다. 즉, 누락된 파일이 발견되었을 때 페이지 처리를 중지하려면 require()를 사용하고, 그렇지 않으면 include()를 사용하십시오.

include "a9.inc";//<span style="font-family: Arial, Helvetica, sans-serif;">a9.inc不存在会产生一个警告</span>
require "a10.inc";//a10.inc不存在会产生一个致命错误

추가됨: include, require include 범위

file a2.inc

$name="lidquan";
class Teacher{
    public function show(){
        echo &#39;my job is teacher</br>&#39;;
    }
}
function showName(){
    echo &#39;a2.inc 里面的方法&#39;;
}

file index.php

function a(){
    require "a2.inc";
    $teacher =new Teacher();
    $teacher->show();
}
 
a();//正常调用
 
showName();//正常调用
 
var_dump($name);//提示$name没有定义

결과 스크린샷은 다음과 같습니다.

포함 후 범위 문제 요약 파일 다음과 같습니다.

1. 포함된 파일에 정의된 모든 함수와 클래스는 포함된 파일에서 전역 범위를 갖습니다.

2. 포함된 파일입니다. 예를 들어 함수에 포함된 경우 포함된 파일의 변수는 로컬 변수입니다

관련 추천 기사:

PHP는 어떻게 컬 메소드를 사용하여 Java 인터페이스를 요청합니까? PHP가 컬 메소드를 사용하여 Java 인터페이스를 요청하는 두 가지 방법

세션을 데이터베이스에 저장하고 PHP에서 사용하는 방법(코드 포함)

ThinkPHP 프레임워크에서 페이징 문자열을 조합하는 코드 구현

위 내용은 PHP에서 include() 함수와 require() 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.