English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 튜토리얼

PHP 고급 튜토리얼

PHP & MySQL

PHP 참조 설명서

php include와 require(파일 포함)

이 튜토리얼에서는 PHP에서 파일을 포함하고 평가하는 방법을 배울 것입니다.

PHP 파일을 다른 PHP 파일에 포함하려면

include()와 require() 문장을 사용하여 PHP 파일의 코드를 다른 PHP 파일에 포함할 수 있습니다. 포함된 파일은 지정된 파일에서 스크립트를 복사하여 호출한 위치에 붙여넣는 것과 같은 결과를 가집니다.

파일을 포함함으로써 많은 시간을 절약할 수 있습니다.-단순히 코드 블록을 별도의 파일에 저장한 후, 필요한 위치에 include()와 require() 문을 사용하여 포함하면 됩니다. 이를 통해 전체 코드 블록을 여러 번 입력할 필요가 없어 시간을 절약할 수 있습니다. 예를 들어, 웹사이트의 모든 페이지에 헤더, 푸터, 메뉴 파일을 포함하는 것이 일반적인 예제입니다.

include()와 require() 문의 기본 문법은 다음과 같습니다:

include("path/to/filename"); 
또는
include "path/to/filename";
require("path/to/filename"); 
또는
require "path/to/filename";

추가적인 정보:print와 echo 문과 마찬가지로, 위에서 설명한 것처럼 include와 require 문을 사용할 때 괄호를 생략할 수 있습니다.

다음 예제에서는 모든 페이지에서 분리된 'header.php', 'footer.php', 'menu.php' 파일에 저장된 일반 헤더, 푸터, 메뉴 코드를 각각 포함하는 방법을 보여줍니다. 이 기술을 사용하면 단 한 개의 파일을 변경하여 즉시 웹사이트의 모든 페이지를 업데이트할 수 있어 많은 반복적인 작업을 절약할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
    <title>기본 강의</title>
</head>
<?php include "header.php"; ?>
<?php include "menu.php"; ?>
    <h1> 환영하세요 우리의 웹사이트를 방문하세요(ko.oldtoolbag.com)!</h1>
    <p>여기서 많은 유용한 정보를 찾을 수 있습니다.</p>
<?php include "footer.php"; ?>
</html>

include와 require 문의 차이점

그렇다면 include() 문을 사용하여 파일을 포함할 수 있다면, 왜 require()를 필요로 하는지 궁금해 할 수 있습니다. 일반적으로 require() 문은 include()와 유사하게 작동합니다.

원래의 차이점은— include() 문은 PHP 경고만 생성하지만, 포함할 파일을 찾을 수 없을 때 스크립트가 계속 실행되도록 허용합니다. 반면에 require() 문은 심각한 오류를 생성하고 스크립트가 실행을 중단합니다.

<?php require "my_variables.php"; ?>
<?php require "my_functions.php"; ?>
<!DOCTYPE html>
<html>
<head>
    <title><?php displayTitle($home_page); ?></title>
</head>
<?php include "header.php"; ?>
<?php include "menu.php"; ?>
    <h1> 환영하세요 우리의 웹사이트를 방문하세요(ko.oldtoolbag.com)!</h1>
    <p>여기서 많은 유용한 정보를 찾을 수 있습니다.</p>
<?php include "footer.php"; ?>
</html>

주의: 라이브러리 파일이나 필요한 함수와 설정 변수를 포함한 파일(예를 들어데이터베이스 구성 파일사용하여)

include_once과 require_once 문

include 또는 require 문을 사용하여 동일한 파일을 여러 번 포함하지 않도록 주의해야 합니다(보통함수또는클래스파일(이)를 포함하면 충돌이 발생할 수 있습니다. 이를 방지하기 위해 PHP는 include_once와 require_once 문을 제공합니다. 이 문들은 include와 require 문과 동일한 방식으로 동작하지만, 하나의 예외가 있습니다:
다시 파일을 포함하면 include_once와 require_once 문은 파일을 한 번만 포함합니다. 즉, 지정된 파일이 이전 문장에서 포함되었으면 다시 포함되지 않습니다. 그 작동 방식을 더 잘 이해하기 위해 예제를 보겠습니다. 예를 들어, 'my_functions.php' 파일이 있는 경우 그 코드는 다음과 같습니다:

<?php
function multiplySelf($var){
    $var *= $var; //변수 자체를 곱합니다
    echo $var;
}
?>

이는 'my_functions.php' 파일을 포함한 PHP 스크립트입니다.

<?php
//파일 포함
require "my_functions.php";
// 함수 호출
multiplySelf(2); // 출력: 4
echo "<br>";
 
//다시 파일을 포함합니다
require "my_functions.php";
// 함수 호출
multiplySelf(5); // 실행하지 않음
?>

위의 스크립트를 실행하면 아래와 같은 오류 메시지와 유사한 메시지를 볼 수 있습니다:“결정적인 오류: multiplySelf() 재정의 불가”이렇게 되는 이유는 'my_functions.php'가 두 번 포함되었기 때문입니다. 이는 multiplySelf() 함수가 두 번 정의되었음을 의미하며, PHP가 스크립트 실행을 중지하고 결정적인 오류를 생성합니다. 지금, 위의 예제를 require_once로 다시 작성해 보겠습니다.

<?php
// 파일 포함
require_once "my_functions.php";
// 함수 호출
multiplySelf(2); // 출력: 4
echo "<br>";
 
//다시 파일을 포함합니다
require_once "my_functions.php";
// 함수 호출
multiplySelf(5); // 출력: 25
?>

그러나 볼 수 있듯이 require_once를 사용하여 require를 대체하면 스크립트가 예상대로 작동합니다.