>  기사  >  백엔드 개발  >  PHP의 include() 사용 기술에 대한 자세한 설명

PHP의 include() 사용 기술에 대한 자세한 설명

黄舟
黄舟원래의
2017-06-25 11:05:313889검색


include() 문은 지정된 파일을 포함하고 실행합니다.

다음 문서는 require()에도 적용됩니다. 두 구조는 실패를 처리하는 방법을 제외하면 동일합니다. include()는 경고를 생성하고 require()는 치명적인 오류를 발생시킵니다. 즉, 누락된 파일이 발견될 경우 페이지 처리를 중지하려면 require()를 사용하십시오. include()의 경우에는 그렇지 않으며 스크립트는 계속 실행됩니다. 또한 적절한 include_path가 설정되어 있는지 확인하십시오.

파일이 포함되면 파일에 포함된 코드는 포함 줄의 변수 범위를 상속합니다. 그 시점부터 해당 줄의 호출 파일에서 사용할 수 있는 모든 변수는 호출된 파일에서도 사용할 수 있습니다.

기본 include() 예제

vars.php
<?php
$color = &#39;green&#39;;
$fruit = &#39;apple&#39;;
?>
test.php
<?php
echo "A $color $fruit"; // A
include &#39;vars.php&#39;;
echo "A $color $fruit"; // A green apple
?>

include가 호출 파일의 함수에 나타나면 호출된 파일에 포함된 모든 코드는 해당 함수 내에 정의된 것처럼 동작합니다. 따라서 해당 함수의 가변 범위를 따릅니다.

함수에 포함

<?php
function foo()
{
   global $color;
   include &#39;vars.php&#39;;
   echo "A $color $fruit";
}
/* vars.php is in the scope of foo() so    *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                              */
foo();                    // A green apple
echo "A $color $fruit";  // A green
?>


파일이 포함되면 파서는 대상 파일 시작 부분에서 PHP 모드를 종료하고 HTML 모드로 들어갔다가 파일 끝에서 다시 시작합니다. 이러한 이유로 PHP 코드로 실행되어야 하는 개체 파일의 모든 코드는 유효한 PHP 시작 및 종료 태그 내에 포함되어야 합니다.

PHP에서 "URL fopen 래퍼"가 활성화된 경우(기본 구성), 포함할 파일은 로컬 파일 대신 URL(HTTP 또는 기타 지원되는 래핑 프로토콜을 통해 - 지원되는 프로토콜은 부록 L 참조)을 사용하여 지정할 수 있습니다. 대상 서버가 대상 파일을 PHP 코드로 해석하는 경우 HTTP GET에 대한 URL 요청 String을 사용하여 포함된 파일에 변수를 전달할 수 있습니다. 엄밀히 말하면 이는 파일을 포함하고 상위 파일의 변수 공간을 상속하는 것과는 다릅니다. 스크립트 파일은 실제로 원격 서버에서 실행되고 로컬 스크립트에는 해당 결과가 포함됩니다.

경고

버전 4.3.0 이전의 Windows 버전 PHP는 허용_url_fopen 옵션이 활성화된 경우에도 이 기능에 대한 원격 파일 액세스를 지원하지 않습니다.

include() via HTTP

<?php
/* This example assumes that www.example.com is configured to parse .php *
 * files and not .txt files. Also, &#39;Works&#39; here means that the variables *
 * $foo and $bar are available within the included file.                */
// Won&#39;t work; file.txt wasn&#39;t handled by www.example.com as PHP
include &#39;http://www.example.com/file.txt?foo=1&bar=2&#39;;
// Won&#39;t work; looks for a file named &#39;file.php?foo=1&bar=2&#39; on the
// local filesystem.
include &#39;file.php?foo=1&bar=2&#39;;
// Works.
include &#39;http://www.example.com/file.php?foo=1&bar=2&#39;;
$foo = 1;
$bar = 2;
include &#39;file.txt&#39;;  // Works.
include &#39;file.php&#39;;  // Works.
?>

자세한 내용은 원격 파일 fopen() 및 file() 사용을 참조하세요.

include() 및 require()는 특수한 언어 구조이므로 조건문에 사용할 때는 명령문 그룹(중괄호)에 배치해야 합니다.

include() 및 조건문 그룹

<?php
// This is WRONG and will not work as desired.
if ($condition)
   include $file;
else
   include $other;
// This is CORRECT.
if ($condition) {
   include $file;
} else {
   include $other;
}
?>


반환값 처리: 포함된 파일의 return() 문을 사용하여 파일에 있는 프로그램의 실행을 종료하고 이를 호출한 스크립트로 돌아갈 수 있습니다. 포함된 파일에서 값을 반환하는 것도 가능합니다. include 호출의 반환 값은 일반 함수처럼 얻을 수 있습니다.

참고: PHP 3에서는 함수에서 호출되지 않는 한 포함된 파일에 return이 나타날 수 없습니다. 이 경우 return()은 전체 파일이 아닌 함수에 대해 작동합니다.

include() 및 return() 문

return.php
<?php
$var = &#39;PHP&#39;;
return $var;
?>
noreturn.php
<?php
$var = &#39;PHP&#39;;
?>
testreturns.php
<?php
$foo = include &#39;return.php&#39;;
echo $foo; // prints &#39;PHP&#39;
$bar = include &#39;noreturn.php&#39;;
echo $bar; // prints 1
?>


$bar의 값은 include가 성공적으로 실행되었기 때문에 1입니다. 위의 예에서 차이점을 확인하세요. 첫 번째는 포함된 파일에서 return()을 사용하고 다른 하나는 사용하지 않습니다. 파일을 변수에 "포함"하는 몇 가지 다른 방법은 출력 제어 함수와 함께 fopen(), file() 또는 include()를 사용하는 것입니다.

참고: 이는 함수가 아닌 언어 구조이므로 "변수 함수"로 호출할 수 없습니다.

위 내용은 PHP의 include() 사용 기술에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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