지역 범위와 전역 범위
<?php
$a = 1; // 전역 변수
function test()
{
return $a; // 지역 변수
}
var_dump( $a ); // int(1)
var_dump( test() ); // NULL
?>
C언어에서 다음과 같이 사용하면 자동으로 전역 변수를 사용하지만 PHP에서는 지역 범위 안에 있는 변수를 전역 변수로 재정의하지 않으면 전역 변수로 사용할 수 없습니다.
전역 변수 (Global Variable)
<?php
$a = 1;
function test()
{
global $a;
return $a;
}
var_dump( $a ); // int(1)
var_dump( test() ); // int(1)
?>
다음과 같이 'global [변수]'를 선언하면 전역 변수로 사용할 수 있습니다.
정적 변수 (Static Variable)
<?php
function test()
{
$a = 0;
$a++;
var_dump( $a );
}
test(); // int(1)
test(); // int(1)
?>
정적 변수를 사용하지 않는다면 test()를 호출할 때마다 '$a'는 0으로 초기화됩니다.
<?php
function test()
{
static $a = 0;
$a++;
var_dump( $a );
}
test(); // int(1)
test(); // int(2)
?>
그러나 정적 변수를 사용하면 '$a'는 초기화되지 않고 데이터가 유지됩니다.
반응형
'PHP > PHP7 예비학교' 카테고리의 다른 글
[PHP] 가변 변수, 가변 함수 그리고 익명 함수(클로저, 람다식, 람다 함수) (0) | 2020.09.12 |
---|---|
[PHP] &$ - 참조 전달 (0) | 2020.09.12 |
[PHP] 타입 힌팅(Type Hinting) - 함수 인자와 반환 값의 형 지정하기 (0) | 2020.09.12 |
[PHP] 가변 길이 인수 - 함수에 여러 인자 받기 (0) | 2020.09.12 |
[PHP] rand() vs mt_rand() - 난수 생성하기 (0) | 2020.09.12 |