함수에서 다른 파일을 include 할 때 전역 변수 인식이 안되는 현상 > 자유게시판

자유게시판

함수에서 다른 파일을 include 할 때 전역 변수 인식이 안되는 현상 정보

함수에서 다른 파일을 include 할 때 전역 변수 인식이 안되는 현상

본문

다음의 두 파일이 있습니다.

a.php



<?
a();

function a()
{
    include_once "b.php";
}
?>

b.php


<?

$var = "this is b";

b();

function b()
{
	global $var;
	echo "b() : $var <br/>";
}


?>

이렇게 했을 때 예상하는 결과는... "b() : this is b" 인데..
"b() : " 라고만 나오네요..

함수안에서 include 했을 때 include 된 파일에서 선언한 변수가 global 키워드로 접근이 안되네요.
$GLOBALS['var'] 를 보아도 변수는 있는데 값이 할당이 안되어있는데..

왜 이럴까요? 
추천
0
  • 복사

댓글 2개

$var 라는 변수는 전역변수가 아닙니다.
a 함수에 속한 지역변수입니다.
즉 a 함수에 속한 $var 변수는 지역변수이므로
b 함수에서 global $var ; 라고 하셔도 전역변수가 없기 때문에 값이 비어있습니다.
역시..;; 그렇다면 저렇게 b파일에 변수를 선언해 놓으면.. 함수에서 그대로 가져다 쓸 방도가 없겠군요.. a파일은 제가 만들려는 프로그램의 함수이고 b파일은 어떤 파일이 될지 모르는 상황이라 음..
© SIRSOFT
현재 페이지 제일 처음으로