테스트 사이트 - 개발 중인 베타 버전입니다

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

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

a.php
[code]
<?
a();

function a()
{
    include_once "b.php";
}
?>
[/code]

b.php
[code]
<?
$var = "this is b";

b();

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

?>
[/code]

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

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

왜 이럴까요? 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

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

게시글 목록

번호 제목
28403
28402
28401
28398
28397
28394
4504
26593
4502
18132
28388
4496
4491
4486
4483
4482
4479
18122
18120
26590
18113
24419
4474
4465
4461
4460
4451
26589
퍼블리셔 이뻐요^^
4450
4448
24418
31037
26390
4446
26585
26581
26578
18098
4443
18097
26388
18094
30596
26387
18091
4445
18088
18086
18085
18082
18081
18078
18076
18074
18072
18070
18069
18066
18064
18057
18056
30588
18055
18054
30585
18051
18050
18048
18047
18044
26386
18042
30580
4425
18039
18037
18031
18028
18027
18022
18018
18016
18009
4423
18003
18000
17999
17996
17993
17989
17987
17986
17985
17984
4411
17979
30576
26383
17975
30569