PHP 변수 범위
PHP 변수 범위
PHP에서 변수는 스크립트의 어느 곳에서나 선언될 수 있습니다.
변수의 범위는 변수를 참조/사용할 수 있는 스크립트의 일부입니다.
PHP에는 세 가지 변수 범위가 있습니다.
- 현지의
- 글로벌
- 공전
글로벌 및 로컬 범위
함수 외부 에서 선언된 변수는 전역 범위를 가지며 함수 외부에서만 액세스할 수 있습니다.
예시
전역 범위의 변수:
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
함수 내 에서 선언된 변수는 LOCAL SCOPE를 가지며 해당 함수 내에서만 액세스할 수 있습니다.
예시
로컬 범위의 변수:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>
지역 변수는 선언된 함수에서만 인식되기 때문에 다른 함수에서 같은 이름을 가진 지역 변수를 가질 수 있습니다.
PHP 글로벌 키워드
global
키워드는 함수 내에서 전역 변수에 액세스하는 데 사용됩니다 .
이렇게 하려면 global
변수 앞에 키워드를 사용합니다(함수 내부).
예시
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
PHP는 또한 모든 전역 변수를 라는 배열에 저장합니다
. 변수의 이름을 보유합니다 . 이 배열은 함수 내에서도 액세스할 수 있으며 전역 변수를 직접 업데이트하는 데 사용할 수 있습니다.$GLOBALS[index]
index
위의 예는 다음과 같이 다시 작성할 수 있습니다.
예시
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
PHP 정적 키워드
일반적으로 함수가 완료/실행되면 모든 변수가 삭제됩니다. 그러나 때때로 우리는 지역 변수가 삭제되지 않기를 원합니다. 추가 작업을 위해 필요합니다.
이렇게 하려면 static
변수를 처음 선언할 때 키워드를 사용하십시오.
예시
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
그런 다음 함수가 호출될 때마다 해당 변수에는 마지막으로 함수가 호출된 시점부터 포함된 정보가 계속 유지됩니다.
참고: 변수는 여전히 함수에 대해 로컬입니다.