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

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

· 12년 전 · 890 · 2
다음의 두 파일이 있습니다.

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개

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

게시글 목록

번호 제목
26447
26436
5279
5276
30674
18417
18414
5261
27054
5259
5239
18413
31486
18410
18400
30670
5231
18395
18387
18381
30661
5222
18380
27043
18366
24478
18359
30660
18355
18351
18343
18333
31439
18329
18323
27040
30655
5211
31427
5205
5193
5184
18317
27032
18313
30647
31408
30644
18306
18303
18288
27028
18285
31383
27024
5174
18276
27017
27130
18274
26427
5170
5160
5157
31371
27010
18267
27003
30636
18265
31350
18262
26998
18260
26992
26988
18259
31328
26986
18257
26983
5154
26975
24474
31309
26966
31251
18253
31218
31201
26957
26954
5147
5139
18248
5132
26947
31189
30631
26939