변수의 범위
변수의 범위(Variables Scope)
1. php에서 변수는 Script의 어느 곳에서나 선언할 수 있음.
2. 변수의 범위는 변수를 참조 or 사용할 수 있는 스크립트의 일부를 가리켜 말함
PHP 변수 범위
1. Local
2. Global
3. Static
Global and Local Scope
함수 외부에서 선언된 변수는 Global Scope를 가지며, 오직 함수의 외부에서만 접근할 수 있음
<!DOCTYPE html>
<html>
<body>
<h1>Global Scope에 대한 이해를 위한 예시</h1>
<?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>";
?>
</body>
</html>
C언어의 전역변수의 개념과는 달리, 함수 내에서는 접근이 불가능하다는 특징이 있음
함수 내부에서 선언된 변수는 Local Scope를 가지며, 오직 해당 함수 내에서만 접근할 수 있음
즉, 지역변수(local)는 선언된 함수에 의해서만 인식되기 때문에 다른 함수에서 동일한 이름을 가진 지역변수를 가질 수 있음
<?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>";
?>
global Keyword
1. global 키워드 함수 내에서 전역(global)변수에 접근하는 데 사용됨. 이를 위해서는 함수 내에서 변수 앞에 global 키워드를 사용해야 함.
(아래의 코드를 서버에서 실행할 경우 그 결과로 15가 출력된다.)
<?php
$x = 5;
$y = 10;
function myTest() {
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // outputs 15
?>
2. php는 또한 모든 전역(Global) 변수를 $GLOBALS[index] 라는 배열에 저장함.
-> 이를 Super Grobal 이라고 표현하기도 함
3. index의 경우 해당 변수의 이름을 사용함
4. 해당 배열을 사용함으로서 함수 내에서 전역변수에 접근하거나 전역변수의 값을 업데이트하는 목적으로 사용할 수 있음
(아래의 코드를 서버에서 실행할 경우 그 결과로 15가 출력된다.)
<?php
$x = 5;
$y = 10;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // outputs 15
?>
Static Keyword
1. 일반적으로 함수가 실행을 마치게 되면, 해당 함수에 대한 지역변수들은 모두 메모리 공간에서 사라지게 됨.
2. 하지만 static keyword를 사용할 경우 함수가 실행을 마치더라도 지역변수가 메모리 공간에서 사라지지 않도록 할 수 있음
3. 이렇게 하기 위해서는 함수 내에서 변수를 선언할 때 앞부분에 static keyword를 사용해주어야 함.
(아래의 코드를 서버에서 실행하는 경우 변수 x가 소멸되지 않고 계속 그 값을 유지하기 때문에 1씩 증가하면서 0, 1, 2가 순서대로 출력)
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
'Web Basic > php' 카테고리의 다른 글
echo 및 print 문 (0) | 2020.11.15 |
---|---|
PHP 기초문법(Basic Syntax) (0) | 2020.11.15 |
php 개요 (0) | 2020.11.15 |
댓글
이 글 공유하기
다른 글
-
echo 및 print 문
echo 및 print 문
2020.11.15 -
PHP 기초문법(Basic Syntax)
PHP 기초문법(Basic Syntax)
2020.11.15 -
php 개요
php 개요
2020.11.15