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와 다른점은 변수를 선언한 이후에 쓸 수있다는 점입니다. <- 이건 자바스크립트의 호이스팅 현상입니다.
-----------
용어
함수스코프 : 변수가 함수안에서 유효하다.
블록스코프: 변수가 블록 범위 (대다수 언어에서는 중괄호) 에서 유효하다.
'PHP' 카테고리의 다른 글
PHP 공식문서 SVN에서 Git으로 이전되었네요. (0) | 2021.01.01 |
---|---|
코드이그나이터 3 REST api 라이브러리 문제들 (2) | 2020.12.31 |
코드이그나이터 3에서 라이브러리 설치시 autoload 에러 (0) | 2020.11.10 |
PHP 버전별 함수 선언과 클래스 선언방식 PHP5.3~ PHP 8.0 (0) | 2020.11.03 |
PHP 8.0 바뀐점 정리된곳 (0) | 2020.10.25 |