왜 이렇게 인클루드 했을까요?

왜 이렇게 인클루드 했을까요?

QA

왜 이렇게 인클루드 했을까요?

본문

/lib/common.lib.php 상단 보면 아래 코드가 보이는데,

include_once(dirname(__FILE__) .'/pbkdf2.compat.php');

 

왜 아래처럼 상대경로로 안 넣고 위처럼 절대경로를 넣은 걸까요?

include_once('./pbkdf2.compat.php');

 

간단한 코드 놔두고, 좀 더 복잡한 코드를 넣은 심오한 이유가 궁금합니다.
 

이 질문에 댓글 쓰기 :

답변 4

https://88240.tistory.com/109

참고해보시면

 

현재 파일이 존재하는 경로..

 

즉,

 

현재 common.lib.php파일을 include한 모체가 되는 파일이 위치한 경로에 저 파일이 존재할때

인큰루드를 해라의 의미로 보여지네요

 

/bbs/test.php
라는 파일안에서 
/lib/common.lib.php 이걸 인클루드 했다고 생각해보세요.

 

그안에서 include_once('./pbkdf2.compat.php');
하면 bbs 폴더 안에 pbkdf2.compat.php 이 파일이 있을까요?
없으면 오류가 나겠죠.
절대로 한 이유는 이 파일이 어디 위치에서 인클루드가 되더라고 오류없이 불러오기 위한 것 입니다.
항상 같은 위치에서 파일이 인클루드되는게 아니라 상황에 따라 위치가 바뀔 수 있다는 것을 예상해서 오류가 발생하지 않도록 한거죠.

include  파일내에 다른 파일을 include  한 경우..

상대경로로 하면 include  한 위치에 따라서 못 불러오게 됩니다.

그래서 절대경로로 해줘야 합니다.

답변 감사합니다.
같은 lib 폴더 안의 common.lib.php에 인클루드 하는 건데, 상대경로로 한다고 해서 못 불러오는 경우가 잘 상상이 안 되네요. 예를 들면, 어떤 경우가 그런건지?

common.lib.php 을 include 하는 파일에서의 위치가 기준이 되는겁니다.
즉, include 하는 파일에 따라서 상대경로가 바뀌게 되는거죠..
아래 설명이 잘되어 있네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 2,338
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT