인클루드시 순서등의 문제
본문
인클루드 한 파일의 내용이 list.php 파일과 중복되거나 비슷한 (조금다르다면)경우
중복시 우선순위가(?) 어떻게되나요
비슷하면서 조금 다른경우에는 어떤문제가 있나요
중복시 우선순위가(?) 어떻게되나요
비슷하면서 조금 다른경우에는 어떤문제가 있나요
답변 3
include, include_once, require, require_once 등
PHP 에서 제공하는 인클루드 함수는 파일의 내용은 신경쓰지 않습니다.
내용이 같아도 경로가 다르면 여러번 인클루드 하게 됩니다.
이 경우엔 *_once 는 우선 배제하고
같은 내용을 두번 인클루드 하게 될 때
일반 변수 혹은 글로벌 변수등은 인클루드 후 값 변경이 이루어졌다면
해당 변수들은 재 인클루드 시 값 초기화 현상이 일어날 것이고
상수같은 타입들은 재선언 에러관련 메세지가 발생할 것입니다.
우선순위의 경우
동일경로 및 include 함수 사용시는 그냥 PHP 엔진이 짜여진 PHP 코드 해석하는 순서 그대로 입니다.
다른경로 및 include 함수 사용시는 해당경로 기준으로 최종시점에 인클루드된 시점입(위 케이스와 반대 = 마지막 인클루드에서 최종 덮어쓰기)니다.
중복된 파일을 제외하려면
include_once 함수를 사용하세요
include와 include_once 의 이해가 선행이 되어야 할 것 같습니다.
인클루드된 파일도 순차적으로 읽어들이기 때문에 비슷하거나 조금 다른(변수의 값?) 등은 마지막에 선언된 값을 받아들일것입니다.
답변을 작성하시기 전에 로그인 해주세요.