PHP에서의 함수를 정의하는 방법은 javascript와 유사하다.
여태껏 C언어와 비슷했다면, 이제는 javascript의 방법을 차용한 것이다.
간단한 예제를 통해 함수를 선언하는 방법을 알아보자.
1 2 3 4 5 6 7 8 9 10 | <?php func(); function func() { echo '함수 실행중...<br>'; } ?> | cs |
5행이 함수를 선언하는 부분이다.
function이라는 키워드를 앞에 붙이면 함수 선언이 완성된다.
그 밑에는 중괄호로 내용을 덧붙이고, 3행처럼 함수를 가져와주기만 하면 끝난다.
그래서 출력값은
함수 실행중...
이 된다.
이제 return값과 함께 함수를 이용해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // BMI 계산기 echo func(100, 150); function func($weight, $height) { $bmi = ($weight / pow($height, 2)) * 10000; return $bmi; } ?> | cs |
return값을 이용하여 함수의 최종값을 반환했다.
예제는 bmi 공식을 통해서 과체중인지 비만인지의 여부를 알아내는건데
return값이 있으면 함수 자체가 그 값이 되어버리기 때문에 echo문에 함수 자체를 출력했다.
코드를 보면 첫번째 인수가 weight, 두번째 인수가 weight가 되는데, 이 두 변수만 넣으면 바로 bmi가 출력되는 형식의 코드다.
예제 안에는 키 150, 몸무게 100을 넣었으므로
$bmi = ($weight / pow($height, 2)) * 10000;
pow함수는 변수의 제곱값을 나타낸다. $height변수의 2제곱값을 계산하였다.
를 거쳐 bmi공식으로 계산하여 결과는 44가 나온다.
이는 고도비만중에서도 심각한 수준으로
밥을 어지간히 먹어야 할 수치다.
아무튼 이런 과정을 통해 5행에서
echo func(100, 150);
를 출력하는데, func()함수에 return값이 있으므로 실질적인 코드는
echo 44;
가 되는것이다.
함수의 인수 안에서 미리 값을 적용시켜버리는 방법도 존재한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // BMI 계산기 echo func(150); function func($height, $weight = 100) { $bmi = ($weight / pow($height, 2)) * 10000; return $bmi; } ?> | cs |
위의 예제에서 몸무게값만 기본 인수값을 지정한 코드이다. (7행)
이렇게 하면 고정적인 인수를 넣은 함수도 만들 수 있다.
- 여기서 주의할 점은, 기본 인수값이 들어있는 인수가 첫번째로 배치되면 함수가 작동하지 않는다. 아예 코드자체에 오류가 생긴다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // BMI 계산기 echo func(150); function func($weight = 100, $height) { $bmi = ($weight / pow($height, 2)) * 10000; return $bmi; } ?> | cs |
7행처럼 인수를 배치해버릴 경우, 5행에 있는 func(150)이 제대로 작동하지 않게된다.
150이란 값은 첫번째 인수인 $weight에 들어가게 되고, $height값은 주어지지않아 오류가 나게 되는것이다.