본문 바로가기

카테고리 없음

PHP) 함수 기초, 변수의 범위에 대해 ( 광역변수와 로컬변수 )

변수를 사용할때도 광역변수, 로컬변수를 생각해가며 로직을 짜야한다.


이렇게 복잡한건 질색이지만, 프로그래머의 숙명이니까 그냥 받아들이도록 하자.


글쓰는건 늘 귀찮기때문에 최대한 쉽고 간결하게 끝내려 한다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
$a = 1;
 
echo $a;
 
b();
function b()
{
    $a = 2;
    echo $a;
}
 
echo $a;
 
?>
cs


위 예제의 출력값은


121


이다.



1) 3행에서 $a를 1로 선언했다.

2) 5행에서 $a를 출력했으니 일단 1이 출력값에 띄워진다.

3) 8행에서 b라는 함수안에 있는 $a를 2로 바꾸고 출력했다. 2가 출력값에 이어서 띄워졌다.

4) 14행에서 $a를 출력했으나 출력값에는 1이 띄워졌다.


그래서 121이 되었다.



함수안에서 재선언한 변수는 함수 밖에서는 적용되지 않는다.





하지만 이를 예외처리하는 방법도 있다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
$a = 1;
 
echo $a;
 
b();
function b()
{
    global $a;
    $a = 2;
    echo $a;
}
 
echo $a;
 
?>
cs


10행처럼 $a의 변수에 따로 global키워드를 붙여넣는 것이다. 이는 자바에서 public과 같은 역할을 하는데, 함수 안에서든 밖에서든 사용이 가능케하는 키워드이다.



다음글) PHP) 정적변수에 대해.. 함수 안에서 변수 사용하기 ( static 키워드 사용법 )