Programming/PHP / / 2021. 2. 24. 18:58

함수(array $parameter), 함수($parameter = [])

728x90

1. function func1(array $parameter) {}

2. function func2($parameter = []) {}

 

함수에 매개변수 중에 저렇게 생긴 게 종종 보입니다.

1번은 해당 매개변수에 대한 설명? 힌트? 그런 것입니다.

  • 값을 필수로 무조건 넣어야 하기에 기본값이라고 하긴 좀 그렇습니다. 그래서 기본값은 없다고 보시는 게 맞겠습니다.
  • 언급했듯이 매개변수는 필수로 넣어야 합니다.

2번도 해당 매개변수에 대한 힌트를 주는 것입니다.

  • 매개변수가 필수는 아닙니다.
  • 배열인 것처럼 되어 있지만 실제로는 다른 타입의 값을 넣어도 됩니다.
  • 값을 넣지 않아도 빈 배열([])이 들어갑니다. 즉 기본값은 빈 배열입니다.

넘어오는 매개변수를 체크도 하고 값을 넣지 않아도 되게 하려면 아래처럼 하시면 됩니다.

function func3(array $parameter = []) {}

 

참고로 $parameter = [] 이거나 $parameter = array()는 같은 의미입니다. 전자는 php 5.4 이상부터 사용 가능한 짧은 문법이고 후자는 아무 버전에서나 써도 되는 문법입니다.

반응형