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

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

· 13년 전 · 892 · 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개

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

게시글 목록

번호 제목
27182
27176
18634
5442
18632
18629
5435
18627
18626
18623
5409
18621
18617
18615
18614
18608
27162
18607
5405
18606
18605
5401
27152
5397
18603
27144
20667
20666
24485
20651
20632
20620
20607
18602
30749
5396
18601
18599
18596
20590
18589
18587
18586
18585
18584
5387
27106
18583
18580
18579
27120
18574
18570
18566
18562
18558
26490
30733
18554
20572
20541
5377
18553
5373
20534
20531
20527
20525
20519
20513
20507
20503
20496
20490
20483
20471
20464
20447
20419
20405
30729
18549
18544
32084
32083
32082
32081
30728
27097
18537
27092
32080
32079
32078
32077
32076
32075
32074
32073
32072