YYYEJI

[PHP] PHP 변수의 Scope 본문

HTML(or XML) & CSS & JavaScript

[PHP] PHP 변수의 Scope

YEJI ⍢ 2022. 12. 12. 13:43
728x90

PHP 변수의 scope에 대해서 알아보겠습니다.

 

 

변수를 function 밖에 선언했을 때

<!EOCTYPE html>
<body>
	<h1>My first PHP page</h1>
	<?php
		$x = 10;   // global scope

		function myTest(){
			echo "<p>Variable x inside funcion is: $x";
		}

		myTest();
		echo "<p>Variable x outside funcion is: $x";
	?>
</body>

→ Function 안에서는 변수 x에 접근할 수 없고, Funcion 밖에서만 변수 x에 접근할 수 있습니다.

 

 

 

변수를 funcion 안에 선언했을 때

<!EOCTYPE html>
<body>
	<h1>My first PHP page</h1>
	<?php
		function myTest(){
			$x = 5;     // local scope
			echo "<p>Variable x inside function is: $x</p>";
		}
		myTest();
		echo "<p>Variable x outside function is: $x</p>";
	?>
</body>

→ Function 안에서만 변수 x에 접근할 수 있고, Funcion 밖에서는 변수 x에 접근할 수 없습니다.

 

 

Global 키워드

global 키워드를 사용하면 function 밖에서 선언된 변수를 function 안에서도 접근할 수 있습니다.

<!EOCTYPE html>
<body>
	<h1>My first PHP page</h1>
	<?php
		$x = 5;
		$y = 10;
		function myTest(){ 
			global $x, $y;
			$y = $x + $y;
		}
		myTest();
		echo $y;
	?>
</body>

 

 

 

$ Globals[index]

index를 느낌의 [ ]를 사용해서 global 변수를 불러올 수도 있습니다.

<!EOCTYPE html>
<body>
	<h1>My first PHP page</h1>
	<?php
		$x = 5;
		$y = 10;
		function myTest() {
			$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
		}
		myTest();
		echo $y;
	?>
</body>

 

Static 키워드

<!EOCTYPE html>
<body>
	<h1>My first PHP page</h1>
	<?php
		function myTest(){
			static $x = 0;
			echo $x." ";
			$x++;
		}
		myTest();
		myTest();
		myTest();
	?>
</body>

→ 함수 내부에서 선언된 변수는 함수 호출이 끝나면 사라지지만 static 키워드를 사용하면 사라지지 않고 값을 유지할 수 있습니다.

 

 

 

◡̈