Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP include_once 문 완벽 가이드: 개념부터 예제까지

include_once 문이란?

PHP의 include_once 문은 include 문과 마찬가지로 한 파일에 작성된 스크립트를 다른 파일로 가져와 평가하고 실행합니다. 두 문의 차이점은 include_once는 동일한 파일이 이미 한 번 포함되었다면 다시 로드하지 않는다는 점입니다. 이름 그대로, 아무리 여러 번 호출하더라도 해당 파일은 단 한 번만 포함됩니다.

include_once 문은 주로 전역 변수 설정, 라이브러리 활성화 등 애플리케이션 실행 초기에 반드시 수행해야 하는 작업에 사용됩니다.

이 외의 동작 방식은 include 문과 동일합니다.

include_once 기본 예제

다음 예제에서는 Apache 서버의 document root 폴더에 testscript.php가 존재하며, 이 스크립트가 include_once 문을 사용하여 test.php를 포함합니다.

예제 코드

<?php
echo "calling include_once statement\n";
$result=include_once "test.php";
?>
//test.php
<?php
echo "This file is included once\n";
?>

출력 결과

testscript.php의 URL을 브라우저에서 실행하면 다음과 같은 결과가 출력됩니다.

calling include_once statement
This file is included once

파일 포함 실패 시 경고(Warning)

include_once 문의 인자로 지정한 파일을 찾지 못하면 파서가 경고(Warning)를 발생시킵니다. 중요한 점은 경고가 발생해도 프로그램이 종료되지 않고 계속 실행된다는 것입니다.

예제 코드

<?php
echo "inside main script<br />";
$var1=100;
echo "now calling nosuchfile.php script";
include_once "nosuchfile.php";
echo "returns from nosuchfile.php";
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 나옵니다. 경고가 발생했음에도 프로그램이 중단되지 않는 점에 유의하세요.

inside main script
now calling nosuchfile.php script
PHP Warning: include_once(nosuchfile.php): failed to open stream: No such file or directory in line 5
PHP Warning: include_once(): Failed opening 'nosuchfile.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 5
returns from nosuchfile.php

include_once 재호출 시 동작

다음 예제에서는 test.php를 include_once 문으로 포함한 후, 같은 파일을 다시 한 번 호출합니다. 이미 포함된 동일한 파일은 두 번째 호출에서 다시 포함되지 않습니다.

예제 코드

//main script
<?php
echo "inside main script<br>";
echo "now including test.php script<br>";
include_once "test.php";
echo "now including again test.php script<br>";
?>
//test.php included
<?php
echo "This file is included once";
?>

출력 결과

브라우저에는 다음과 같은 결과가 표시됩니다.

inside main script
now including test.php script
This file is included once
now including again test.php script

정리 및 참고 사항

include_once는 함수 라이브러나 설정 파일처럼 중복 정의 시 오류(redeclare 오류 등)가 발생할 수 있는 파일을 안전하게 포함할 때 특히 유용합니다. 참고로 PHP에는 성격이 유사한 네 가지 문이 있습니다.

  • include: 파일을 포함하며, 실패 시 경고(Warning)만 발생하고 실행은 계속됩니다.
  • include_once: include와 동일하지만, 동일 파일의 중복 포함을 방지합니다.
  • require: 파일을 포함하며, 실패 시 치명적 오류(Fatal Error)로 실행이 중단됩니다.
  • require_once: require와 동일하지만, 동일 파일의 중복 포함을 방지합니다.

따라서 필수적인 파일은 require_once, 선택적인 파일은 include_once를 사용하는 것이 일반적인 모범 사례입니다.