php

전역 / 정적 / 옵셔널 변수

hojomu 2023. 9. 4. 08:42

1. 전역변수

global $cost;

전역 범위에서, 변수에 저장된 값에 접근하거나 업데이트 할 수 있다

다른 프로젝트에서 봐야할 경우 위와 같이 선언한다.

 

2. 정적변수

static $value = 10;

일반적으로 함수 내에서 선언된 변수는 함수가 끝나면 삭제된다.

정적변수로 선언할 경우, 함수가 끝나도 변수를 삭제하지 않고 기억한다. 다만, 함수 내에서 선언되었기 때문에, 함수 내부의 코드에서만 사용할 수 있다.

 

3. 옵셔널 매개변수

php에서는 JAVA와 달리 오버로딩이 불가능하다. 그래서 함수에 매개변수가 선언되어 있다면, 함수를 호출할 때 항상 동일한 수의 매개변수가 필요하다.

하지만 옵셔널 매개변수를 활용하면, 해당 변수로 지정된 매개변수 없이 함수가 호출 된 경우 default 값을 가진 것으로 취급하고 함수를 실행시킬 수 있다.

function calculate($a , $b , $option = 0){
	return $a + $b + $option;
}

$result = calculate(4 , 5);

 

함수를 정의할 때, 모든 옵셔널 매개변수는 대괄호 안에 넣는다. 함수를 호출할 때는 대괄호를 사용하지 않는다. ???

calculate($c , $d [, $optional ])

옵셔널 매개변수 앞의 콤마는 대괄호 안에 있어야한다. PHP 8 이전에는 함수를 호출할 때 마지막 인수 다음에 콤마를 넣으면 오류가 발생한다 (PHP 8은 후행 콤마를 허용함)