$g4_path와 $g4['path']의 차이점은 뭔가요?
본문
common.php라는 파일을 include_once를 할려고 하니까
include_once(" $g4['path']/common.php")를 안먹히고,
include_once("$g4_path/common.php")가 먹히네요.
답변 2
$g4['path'] 은 연관배열 이라는 것이고
$g4_path 은 단순한 변수 입니다.
$g4_path에 값이 셋팅 되어 있어서 작동하는 거구요
$g4['path'] 연관배열은 변수의 모임 으로 생각 하시면 되고
print_r($g4) 해보시면 포함된 변수들이 모두 출력됩니다.
include_once(" $g4['path']/common.php")
include_once("$g4_path/common.php")
위와 같이 하는 것은 둘다 사용법이 틀렸습니다
common.php 이전에 $g4[path]나 $g4_path 설정값이 없으므로
그냥 include_once("/common.php"); 이렇게 한 것과 동일합니다
첫번재 것이 안되는 이유는
"{$g4['path']}/common.php" 또는 $g4['path'].'/common.php" 이렇게 해야 합니다
$g4_path, $g4['path'] 차이점
$g4_path 는 common.php를 불러오기 위해서 _common.php에서 설정하는 값입니다
_common.php 를 사용할 폴더에 만듭니다
예) root에 그누가 설치 되어있을 때
/bbs 폴더의 _common.php 내용
<?
$h4_path="..";
include_once("$g4_path/common.php");
?>
/include/mypage 라는 폴더가 있다면 이 폴더에 만들 _common.php 내용
<?
$g4_path="../..";
include_once("$g4_path/common.php");
?>
_common.php를 위와 같이 각 폴더에 만들어 놓으면 해당 폴더의 화일들은 모두 동일하게 상단에
include_once("_common.php");
이렇게 해주면 되는 거죠
이렇게 하는 것이 어떤 이점이 있느냐하면 mypage에 있던 화일을 어떤 폴더로 복사/이동 해도
경로수정 없이 그대로 사용가능하게 됩니다
$g4['path']는 $g4_path 값을 그냥 $g4 배열변수로 만든 것입니다(common.php에서 작업 수행)
배열변수로 만든 후 $g4_path는 삭제 되어 이후에는 더 이상 사용할 수 없게됩니다
요약하면 $g4_path는 common.php include 이전에 사용(include 이후에는 삭제됨)
$g4[path[는 common.php include 이후에 사용하는 변수 입니다
_common.php를 include 하지않고 직접 common.php를 include 하려면
아래와 같이 해야 합니다(이렇게 하지않으면 잘못된 방법 어쩌구 하는 에러납니다)
만드는 화일의 위치에 따라 아래처럼
<?
$g4_path=".";
include "$g4_path/common.php"; 또는 include "./common.php";
~~
<?
$g4_path="..";
include "$g4_path/common.php"; 또는 "../common.php";
~~