PHP의 변수는 일반적으로 지역변수에 해당된다.
함수 안에서 정의되는 변수는 그 함수 안에서만 유효하다.
즉, 함수 안에서 정의되는 변수는 그 함수 안의 영역에서만 의미를 갖는 지역 변수이다.
** 지역 변수
ex) <?
$a = 100;
function print_local_variable() {
echo "변수 \$a의 값은 {$a} 입니다.";
}
print_local_variable();
?>
--> 위의 결과 값은 "변수 $a의 값은 입니다." 로 나타남. 그 이유는 $a 는 지역변수 이므로 함수 밖의 변수와 상관 없이 함수 내의 $a는 정의하지 않았기 때문에 아무런 값도 없는 것이다.
** 전역 변수 (함수 내에서 선언)
만일 이것을 전역 변수로 사용하기 위해서는 아래와 같이 하면 된다.
ex) <?
$a = 100;
function print_local_variable() {
global $a; // global을 사용하여 전역 변수로 선언.
echo "변수 \$a의 값은 {$a} 입니다.";
}
print_local_variable();
?>
--> 위와 같이 전역변수로 선언하면 결과 값은 "변수 $a의 값은 100 입니다." 로 출력됨.
또한 다른 방법으로는 미리 정의된 $GLOBALS라는 이름의 연관배열을 이용하는 것.
ex) <?
$a = 100;
$b = 200;
function sum() {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; // $GLOBALS 배열을 사용하여 전역 변수로 선언.
}
sum();
echo "변수 \$b 의 값은 ". $b . "입니다.";
?>
--> 위와 같을 경우 "변수 $b의 값은 300 입니다"로 출력됨. 연관 배열의 형태로 변수를 가져온다.
** 정적 변수 (함수내에서 선언)
- 정적 변수는 전역변수와는 다르게 해당 함수가 종료된 후에도 사라지지 않고 계속 그 값을 가지고 있는 변수.
단. 해당 함수를 실행할 때만 적용되며, 함수 밖에서는 해당되지 않는다.
ex) <?
function print_static_variable() {
static $a = 10; // static으로 정적 변수 선언
echo "현재 변수 \$a의 값은 ". $a." 입니다. <br>";
$a = $a + 2;
}
print_static_variable(); // 첫번째 함수 실행 출력은 --> "현재 변수 $a의 값은 10 입니다."
print_static_variable(); // 두번째 함수 실행 출력은 --> "현재 변수 $a의 값은 12 입니다." 이 경우 static 으로 기존에 10의 값을 가지고 있으므로 12를 출력한다. static $a = 10; 이라는 행은 처음 실행때만 해당한다.
print_static_variable(); // 세번째 함수 실행 출력은 --> "현재 변수 $a의 값은 14 입니다.". static에 의해 최종 값인 12를 가지고 있으므로 14를 출력
echo "변수 \$a의 값은 ". $a." 입니다. <br>"; // 여기에서 정적변수 $a는 함수를 실행할 때만 해당하므로 함수밖에서는 $a를 선언하지 않았으므로 출력은 "변수 $a의 값은 입니다."로 $a의 값은 아무것도 출력하지 않음.
?>
** 가변 변수
- 어떤 변수의 값을 이름으로 갖는 변수. 형식은 ${$변수이름} 이다.
<?
$author = "jay";
${$author} = "윤준수" // $author의 값은 "jay" 이므로, ${$author} == $jay 와 같다.
echo "author : ". $author."<br>";
echo "jay : ". ${$author} . "<br>";
echo "jay : ". $jay . "<br>";
?>
위 내용의 결과는 아래와 같다.
--> author : jay
jay : 윤준수
jay : 윤준수
위와 같다.
'컴퓨터 세상 > PHP' 카테고리의 다른 글
PHP - $_SERVER 변수 (0) | 2020.07.09 |
---|---|
PHP - 미리 정의된 PHP 변수 (0) | 2020.07.09 |
PHP - 배열 변수 및 생성 (0) | 2020.07.08 |
PHP - String 변수 (0) | 2020.07.08 |
PHP 기초 (0) | 2020.07.07 |