>  기사  >  백엔드 개발  >  PHP에서 포함과 요구의 차이점에 대한 간략한 분석

PHP에서 포함과 요구의 차이점에 대한 간략한 분석

不言
不言원래의
2018-07-18 10:42:283746검색

이 글에서는 PHP의 파일 포함 기능과 필수 기능의 차이점을 알려드리겠습니다. 도움이 필요한 친구가 참고할 수 있습니다.

예를 들어, 다음 코드는:

include('hello.php');
echo 'include test final!';//include报错,但是会继续执行,显示:include test final!
require('hello.php');
echo 'require test final!';//require报错,停止代码的执行。

한 문장으로 요약하면:
1.include()는 경고를 생성합니다.
2.require()는 치명적인 오류를 발생시킵니다.

즉, 처리를 중지하려는 경우 파일이 누락된 경우 주저하지 말고 require() 를 사용하세요. include()의 경우에는 그렇지 않으며 스크립트는 계속 실행됩니다. 또한 적절한 include_path가 설정되어 있는지 확인하십시오.
즉, 구문 분석 후가 아니라 프로그램을 다시 구문 분석할 때 필수 파일을 읽습니다. 필수 파일을 읽을 수 없으면 다음 단계를 진행할 수 없습니다. 따라서 프로그램이 잘못 포함되도록 하는 파일에는 require를 사용하는 것이 좋습니다. 조금 더 효율적일 수도 있습니다.

참고: require()는 어쨌든 파일을 포함하지만, include()는 선택적으로 다음을 포함할 수 있습니다:

<?php
 if(FALSE){
   require(&#39;x.php&#39;);
 }
 if(FALSE){
   include(&#39;s.php&#39;);
 }
?>

위 코드에서: x.php는 확실히 포함되지만 s.php는 확실히 포함되지 않습니다.

두 가지 방법은 서로 다른 사용 유연성을 제공합니다.
require는 require("MyRequireFile.php")처럼 사용됩니다. 이 함수는 일반적으로 PHP 프로그램이 실행되기 전에 먼저 require에 지정된 파일을 읽고 이를 PHP 프로그램 웹 페이지의 일부로 만듭니다.
include는 include("MyIncludeFile.php")와 같이 사용됩니다. 이 기능은 일반적으로 흐름 제어의 처리 섹션에 배치됩니다. PHP 프로그램 웹 페이지는 포함 파일을 읽을 때 해당 파일을 읽습니다. 이러한 방식으로 프로그램 실행 프로세스를 단순화할 수 있습니다.
1. 사용법 구문 및 소개

1.include()
구문: ​​include(/path/to/filename)
include() 문은 호출된 위치에 파일을 포함합니다. 파일을 포함하면 명령문 위치에 지정된 파일의 데이터를 복사하는 효과가 있습니다.
include()를 사용할 때 Parense는 무시될 수 있습니다.

include() 문은 조건에 따라 실행될 수 있습니다. 조건문에서 include()를 사용할 때 이상한 현상이 있습니다. 반드시 명령문 블록 중괄호나 다른 명령문 괄호로 묶어야 합니다.

2.include_once()
Syntax: include_once(filename)

include_once() 문은 스크립트 실행 중에 지정된 파일을 포함하고 실행합니다. 이 동작은 include() 문과 유사합니다. 유일한 차이점은 include_once()가 파일이 이전에 포함되었는지 먼저 확인한다는 것입니다. 이 포함은 무시됩니다.
include_once()는 함수 재정의 및 변수 재할당과 같은 문제를 피하기 위해 한 번만 포함되도록 하려는 경우 사용해야 합니다.

요약: include_once() 함수는 include와 동일한 기능을 가지고 있지만 먼저 파일이 포함되었는지 확인합니다. 이미 포함되어 있으면 include_once가 더 이상 실행되지 않습니다. 그렇지 않으면 파일을 포함해야 합니다. 이것을 제외하면 include와 완전히 동일합니다.

3.require()
구문: ​​require(filename)
require()는 require 호출이 있는 위치에 템플릿 파일을 포함한다는 점에서 include와 거의 동일합니다.
필요와 포함 사이에는 두 가지 중요한 차이점이 있습니다. 첫째, require가 발생한 위치와 관계없이 require가 발생하는 스크립트에는 해당 사양 파일이 포함됩니다. 예를 들어, false로 평가되는 if 문에 require를 배치하더라도 지정된 파일은 계속 포함됩니다.
두 번째 중요한 차이점은 require가 실패하면 스크립트 실행이 중지되고, include의 경우 스크립트는 계속 실행된다는 것입니다.

4.require_once()
구문: require_once(filename)
require_once() 문은 스크립트 실행 중에 지정된 파일을 포함하고 실행합니다. 이 동작은 require() 문과 유사합니다. 유일한 차이점은 require_once()가 파일이 이전에 포함되었는지 먼저 확인한다는 것입니다.
require_once()는 함수 재정의 및 변수 재할당과 같은 문제를 피하기 위해 한 번만 포함되도록 하려는 경우 사용해야 합니다.

요약: 웹사이트 규모가 커질수록 일부 파일이 반복적으로 포함될 수 있습니다. 이는 문제가 되지 않을 수도 있지만 포함된 파일의 변수를 수정하면 나중에 원본 파일이 다시 포함되기 때문에 덮어쓰게 되어 바람직하지 않을 수 있습니다. 발생할 수 있는 또 다른 문제는 포함된 파일의 함수 이름이 충돌하는 것입니다. 이러한 문제는 require_once를 사용하여 해결할 수 있습니다.
require_once 함수는 파일이 한 번만 포함되도록 보장합니다. require_once가 발생한 후 동일한 파일을 포함하려는 후속 시도는 무시됩니다.

2. 차이점 요약

1. include() 문과 require() 문의 차이점.
둘의 차이점: 이 두 구조는 실패를 처리하는 방법을 제외하면 완전히 동일합니다.
include()는 경고를 생성하고 스크립트는 계속 실행됩니다.
require()는 치명적인 오류를 일으키고 스크립트 실행이 중지됩니다.

즉, 파일이 없거나 오류가 발생한 경우 페이지 처리를 중지하려면 require()를 사용하세요. 오류가 발생했을 때 페이지 처리를 계속하려면 include()를 사용하세요.
PHP 4.3.5 이전에는 포함 파일의 구문 오류로 인해 프로그램이 중지되지 않았지만 이 버전에서는 중지됩니다.

2. include_once(), require_once(), include()의 차이점은 require()
include_once()는 require_once()와 동일하며 스크립트 실행 중 동일한 파일이 두 번 이상 포함될 수 있는 경우에 사용해야 합니다. 함수 재정의, 변수 재할당 등의 문제를 피하기 위해 한 번만 포함되었는지 확인하고 싶습니다. 이것이 include_once()와 require_once(), include()와 require()의 주요 차이점입니다.

3. 주의가 필요한 문제

1. 경로 문제
특히 중첩된 파일의 경우 경로에 주의해야 합니다.
예를 들어 파일 A에는 파일 B가 포함되어 있고 파일 B에는 파일 C가 포함되어 있으며 파일 A, B, C는 같은 폴더에 있지 않습니다. 이때 실수를 저지르기 쉽습니다.
해결책: 현재 스크립트의 절대 경로를 가져오는 것을 의미하는 dirname(__FILE__) 문을 사용할 수 있습니다. 예: require_once(dirname(__FILE__).'/config.php');

2. 효율성 문제
include_once(), require_once()는 include(), require()에 비해 효율성이 떨어집니다. 최소한 파일이 포함되어 있는지 확인해야 합니다. 이 문제는 PHP5 버전에서 많이 개선되었으나 여전히 효율성에는 차이가 있습니다.

관련 권장 사항:

PHP에서 include_once, require_once, include 및 require의 사용 시나리오와 차이점.

PHP의 include와 require의 차이점, phpincluderequire

위 내용은 PHP에서 포함과 요구의 차이점에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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