이전의 포스팅들과 같이 이미 존재하는 함수들은 내장함수 라고 불린다.
프로그래밍을 배우기 한참 전에 게임 매크로를 만드는 스크립트를 짜본 적이 있다.
그때는 변수가 뭔지도 몰랐고 얕게 필요한 부분만 배워서 함수의 존재도 당연 몰랐었다.
그렇게 같은 내용을 반복해서 붙인 결과 실제 100줄도 안되는 코드가 4천 줄이 넘었었다.
지금 생각하면 우스운 일이지만 그 때는 그게 최선이였다.
함수 만들기
함수의 필요성은 이렇다. 본인이 만든 기능이 다른 곳에서도 쓰이게 된다면 코드가 중복되게 되는데,
매번 같은 소스를 작성할 필요 없이 함수로 만들어서 필요시에 호출하면 된다.
기본적인 구성은 아래와 같다. 경우에 따라 전달값이 존재할 때도 있다.
function 함수이름() {
실행내용
}
호출 할 때마다 Hello World 를 출력하는 함수 예제를 한 가지 만들어 보았다.
<?php
function outputHello() {
echo "Hello World!";
}
?>
코드를 실행하면 아무것도 화면에 나오지 않는다.
outputHello 라는 함수는 존재하지만 누가 불러주지 않으면 없는 것이나 마찬가지다.
함수 호출하기
<?php
function outputHello() {
echo "Hello World!";
}
if (10>5) {
outputHello();
} else {
echo "Bye World";
}
?>
조건문이 참일 때 outputHello 함수가 호출된다. 거짓일 때는 Bye World가 출력된다.
Result
Hello World!
전달값이 잘 이해가 안된다면? => [PHP] 파라미터와 아규먼트
함수에서 값 반환하기
함수를 호출한 곳으로 값을 전달할 때는 return 을 사용한다.
함수 내에서 리턴은 항상 마지막에 위치하여야 하고, 리턴문 아래의 코드는 작동하지 않는다는 것을 기억하자.
<?php
function sum($num1, $num2) {
$sum = $num1 + $num2;
return $sum;
echo "어차피 작동하지 않습니다.";
}
$plus = sum(1,5);
echo $plus;
?>
리턴으로 $sum을 반환했으니 $plus에는 1과 5의 합인 6이 들어간다.
5번 라인의 코드는 작동하지 않는다.
Result
6
'Backend > php' 카테고리의 다른 글
[PHP] 모듈화 함수 - include()와 require() (0) | 2020.03.12 |
---|---|
[PHP] 파라미터(Parameter)와 아규먼트(Argument) (0) | 2020.03.10 |
[PHP] 시간 함수 (2) - getdate(), checkdate(), microtime() (0) | 2020.03.07 |
[PHP] 시간 함수 (1) - time(), date(), mktime() (0) | 2020.03.07 |
[PHP] date.timezone 지역 설정하기 (Asia/Seoul) (0) | 2020.03.04 |