왜 이렇게 인클루드 했을까요? 채택완료
/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한 모체가 되는 파일이 위치한 경로에 저 파일이 존재할때
인큰루드를 해라의 의미로 보여지네요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
/bbs/test.php
라는 파일안에서
/lib/common.lib.php 이걸 인클루드 했다고 생각해보세요.
그안에서 include_once('./pbkdf2.compat.php');
하면 bbs 폴더 안에 pbkdf2.compat.php 이 파일이 있을까요?
없으면 오류가 나겠죠.
절대로 한 이유는 이 파일이 어디 위치에서 인클루드가 되더라고 오류없이 불러오기 위한 것 입니다.
항상 같은 위치에서 파일이 인클루드되는게 아니라 상황에 따라 위치가 바뀔 수 있다는 것을 예상해서 오류가 발생하지 않도록 한거죠.
댓글을 작성하려면 로그인이 필요합니다.
include 파일내에 다른 파일을 include 한 경우..
상대경로로 하면 include 한 위치에 따라서 못 불러오게 됩니다.
그래서 절대경로로 해줘야 합니다.
답변에 대한 댓글 2개
같은 lib 폴더 안의 common.lib.php에 인클루드 하는 건데, 상대경로로 한다고 해서 못 불러오는 경우가 잘 상상이 안 되네요. 예를 들면, 어떤 경우가 그런건지?
즉, include 하는 파일에 따라서 상대경로가 바뀌게 되는거죠..
아래 설명이 잘되어 있네요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
근데, 결국은 같은 폴더 안에 있는 파일을 불러오라는 의미이니까, 상대경로의 현재위치인 점(.)과 별반 달라보이지 않아서요...