[PHP] require VS include

2019. 5. 20. 10:07·Language/PHP
반응형
[PHP] require vs include

php_logo

PHP에서는 파일을 포함시키는 require와 include 두 가지 키워드가 존재한다. 이 두 가지를 번갈아 가면서 써도 큰 차이를 느낄 수 없다. 언제 require를 사용해야하고, 언제 include를 사용해야 할까?

먼저 예제 코드를 작성해 봤다.

xxxxxxxxxx
# index.php
<?php
​
#require or include?
include "Worker.php";
​
echo "before Worker::work<br>";
Worker::work();
echo "After Worker::work<br>";
xxxxxxxxxx
# Worker.php
<?php
    
class Worker
{
    public static function work()
    {
        echo "Worker::work() Called!<br>";
    }    
}

index.php에서 work파일을 포함시키고 있다.

img

여기서 require나 include 모두 동일하게 동작한다.

이 둘은 오류 처리에 대해 차이점이 있다.

include와 require문은 동일하지만 실패 시 다른 동작을 하게 됩니다.

  • require는 치명적인 오류(컴파일 에러)를 생성하고 스크립트를 중지합니다.
  • include는 경고를 생성하고 스크립트는 계속됩니다.

w3schools

즉 파일을 정상적으로 가져오지 못했을 경우, require는 에러가 발생하고 멈추지만 include는 계속 실행하게 된다.

require와 include로 존재하지 않는 Worker2.php 파일을 포함시켜 봤다.

xxxxxxxxxx
<?php
​
# require 사용
require "Worker2.php"; #Worker2.php는 존재하지 않는 파일
​
echo "before Worker::work()<br>";
Worker::work();
echo "After Worker::work()<br>";

requ

require의 경우 500 에러와 함께 페이지를 출력할 수 없다.

 

incl

include를 사용했을 경우 첫 index.php의 7 라인에 있는 echo "before Worker::work<br>"; 만 출력하는 것을 볼 수 있다. Worker::work()를 찾을 수 없기 때문에 그 이전 내용까지만 실행이 되는 것이다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'Language/PHP' 카테고리의 다른 글
  • [PHP] session
  • [PHP] psr4
  • [PHP] composer 설치
  • [PHP] autoload
덴마크초코우유
덴마크초코우유
IT, 알고리즘, 프로그래밍 언어, 자료구조 등 정리
    반응형
  • 덴마크초코우유
    이것저것끄적
    덴마크초코우유
  • 전체
    오늘
    어제
    • 분류 전체보기 (124)
      • Spring Framework (10)
        • Spring (5)
        • JPA (3)
        • Spring Security (0)
      • Language (51)
        • Java (11)
        • Python (10)
        • JavaScript (5)
        • NUXT (2)
        • C C++ (15)
        • PHP (8)
      • DB (16)
        • MySQL (10)
        • Reids (3)
        • Memcached (2)
      • 개발 (3)
      • 프로젝트 (2)
      • Book (2)
      • PS (15)
        • 기타 (2)
        • 백준 (2)
        • 프로그래머스 (10)
      • 딥러닝 (8)
        • CUDA (0)
        • Pytorch (0)
        • 모델 (0)
        • 컴퓨터 비전 (4)
        • OpenCV (1)
      • 기타 (16)
        • 디자인패턴 (2)
        • UnrealEngine (8)
        • ubuntu (1)
        • node.js (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    FPS
    JavaScript
    Unreal
    웹
    C++
    map
    게임 개발
    자바
    CPP
    파이썬
    C
    php
    pytorch
    memcached
    클래스
    redis
    프로그래머스
    게임
    Python
    딥러닝
    알고리즘
    MySQL
    JS
    NUXT
    select
    mscoco
    블루프린트
    언리얼엔진4
    PS
    Unreal Engine
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
덴마크초코우유
[PHP] require VS include
상단으로

티스토리툴바