define 질문

define 질문

QA

define 질문

답변 4

본문

제가 개인 서버에

define('_RootPath', $_SERVER['DOCUMENT_ROOT'].'/');

이렇게 common.php 지정을 해 두고

 

include_once(_RootPath.'head_sub.php');

이렇게 include_once를 하니까

 

1. Use of undefined constant _RootPath - assumed '_RootPath' (this will throw an Error in a future version of PHP

2.include_once(_RootPathhead_sub.php): failed to open stream: No such file or directory in

3.include_once(): Failed opening '_RootPathhead_sub.php' for inclusion

 

이런 경고문이 뜨는데 echo 를 찍어서 보면 define 함수에 있는 값이 출력이 잘 되는데 왜 include 할 시에는 저런 오류가 뜨는 이유가 알고 싶습니다.

 

검색을 해봤지만 너무 안나와서 도움을 청해보네요

 

이유가 뭔지 궁금하고 해결 방법도 알려주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 4

경고문이 뜨는데 echo 를 찍어서 보면 define 함수에 있는 값이 출력이 잘 되는데 

<== 그럴리가요

이렇게 common.php 지정을 해 두고<== common.php를 제대로 include 하지못하고있을것 같은데요?

다음 처럼 define을 include 바로 위에 넣어서 해보면 금방 알게 되겠죠

 

define('_RootPath', $_SERVER['DOCUMENT_ROOT'].'/'); <---common.php를 제대로 불러온다면 여기서 중복설정 에러가 나야 합니다

include_once(_RootPath.'head_sub.php');

어 그러네요 중복설정 오류는 안 나고 있어요... 그러면 common.php 파일을 제대로 못 불러오는게 맞겠네요

지금 head_sub.php, include_once 에

<?php
include_once('common.php');
?>

이렇게 해 놨는데 왜 못 불러 오는 걸까요?...

그러면 head.php 에

<?php
include_once('common.php');

include_once(_RootPath.'head_sub.php');
?>

이렇게 하는게 정상이에요?

이렇게 하니까 오류가 하나도 안 뜨긴 하네요!

근데 제가 생각하기로는 head_sub에 common.php 를 인클루드해도 상위파일 기준으로 하위파일도 같이 이어지는게 아닌가 하고 이해하면서 사용하고 있었거든요 한번도 오류가 없었거든요 최근에 저 define 함수를 이해하고 상수를 만들어서 쓰는게 좋다고해서 사용해본건데 지금같은 오류를 발견한거고 ㅠㅠ

제가 잘못 이해하고 있었던건가 싶네요...

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 95
© SIRSOFT
현재 페이지 제일 처음으로