PHP

PHP 변수 스코프

마리오64 2020. 12. 3. 00:14

PHP에서 변수는 함수 스코프입니다.

<?php

function add($a, $b)
{
	$a + $b;
}
add(3,4);
echo $a; // 에러
-------------------------
//-- 7.0 이상에서는 타입을 넣을수가 있죠
function addForPHP7(int $a, int $b)
{
	$a + $b;
}
addForPHP7(3,4);
echo $a; // 에러
<?php

//예시 2
$a = 1;
$b = 2;
if($a < $b) {
	$a = 5; // 변수a 에 5가 들어가면 

}

echo $a; // 5가 출력됩니다.

PHP에서 변수가 유지되는건 함수안입니다. 이름 함수 스코프라 하고 스코프는 범위라는 뜻입니다.

즉 함수안과 밖의 변수명이 같아도 다른 변수죠.

예시 2를 보면 중괄호 안과 밖의 변수는 같은데요  블록 스코프가 아니라서  괄호안에서 변수값을 바꾸면 괄호를 벗어나도 바뀝니다.

 

자바스크립트의 var 변수 선언과 비슷하게 보이지만,

자바스크립트의 var와 다른점은 변수를 선언한 이후에 쓸 수있다는 점입니다. <- 이건 자바스크립트의 호이스팅 현상입니다.

 

-----------

용어

함수스코프 : 변수가 함수안에서 유효하다.

블록스코프: 변수가 블록 범위 (대다수 언어에서는 중괄호) 에서 유효하다.