💻 쇼핑몰 자동화 & 웹 개발 가이드

[PHP 입문] 함수 완전 정복: 선언, 매개변수, 반환, 내장함수

rhandy 2025. 4. 10. 07:10
728x90

복잡한 코드, 함수로 깔끔하게 정리해보세요! PHP 함수의 모든 것을 한 글에 담았습니다.

안녕하세요! PHP를 배우다 보면 반복되는 코드가 점점 늘어나죠. 저도 처음엔 같은 코드를 복사해서 붙여넣는 걸 당연하게 여겼는데, 나중에 실수도 많고 수정도 번거롭더라고요. 이럴 때 등장하는 게 바로 함수입니다. 함수를 이용하면 코드가 더 짧고, 읽기 쉬우며, 재사용도 가능해져요. 이번 포스트에서는 PHP 함수의 기본 문법부터, 매개변수 사용법, 반환값 처리, 그리고 자주 쓰는 내장 함수까지 폭넓게 정리해드립니다. 글을 다 읽고 나면 “아, 함수는 꼭 써야겠구나”라는 생각이 드실 거예요 😊

함수가 필요한 이유

함수는 특정 작업을 반복해서 사용하고 싶을 때 아주 유용한 도구입니다. PHP 코드를 짜다 보면 같은 코드 블록이 여러 번 등장하곤 해요. 이런 경우 코드를 복사해서 붙이는 대신, 함수를 만들어서 호출만 하면 코드가 훨씬 깔끔해지고 유지보수도 쉬워집니다.

또한, 함수는 하나의 독립적인 블록이기 때문에 다른 코드와의 충돌을 방지할 수 있고, 전체적인 흐름을 더 논리적으로 구성할 수 있게 도와줍니다. 결국, 프로답게 코딩하려면 함수를 자유자재로 다룰 수 있어야 해요!

PHP 함수 선언과 호출 문법

PHP에서 함수를 선언하려면 function 키워드를 사용합니다. 함수 이름 뒤에 괄호 ()와 중괄호 {}를 붙여 코드 블록을 구성합니다. 함수를 만든 후엔, 언제든지 호출해서 실행할 수 있어요.

예제 코드 설명
function sayHello() { echo "안녕하세요!"; } sayHello라는 함수를 선언
sayHello(); sayHello 함수를 호출
function today() { return date("Y-m-d"); } 함수에서 현재 날짜를 반환

매개변수와 기본값 처리

함수는 외부에서 전달받은 값을 사용할 수 있도록 매개변수를 받을 수 있습니다. 매개변수를 여러 개 받을 수도 있고, 기본값을 설정할 수도 있어요.

  • 기본 매개변수: function greet($name) { ... }
  • 기본값 설정: function greet($name = "친구") { ... }
  • 복수 매개변수: function calc($a, $b) { ... }
function greet($name = "친구") {
  echo "안녕하세요, $name 님!";
}

greet("지민"); // "안녕하세요, 지민 님!"
greet();       // "안녕하세요, 친구 님!"

return으로 값 반환하기

함수는 단순히 작업만 수행하는 것이 아니라 결과값을 반환할 수도 있습니다. return 키워드를 사용하면, 함수를 호출한 곳에서 결과를 변수에 저장하거나 바로 사용할 수 있어요.

function add($x, $y) {
  return $x + $y;
}

$sum = add(10, 20);
echo "합계: " . $sum;

이렇게 하면 함수가 계산한 값을 받아서 다른 계산이나 출력에 활용할 수 있어, 복잡한 로직도 깔끔하게 정리할 수 있습니다.

자주 쓰는 PHP 내장 함수

PHP는 이미 만들어진 수많은 내장 함수들을 제공합니다. 이 함수들만 잘 활용해도 엄청난 개발 속도 향상이 가능해요!

함수명 기능
strlen() 문자열 길이 구하기
strtoupper() 문자열을 대문자로 변경
array_push() 배열에 요소 추가
in_array() 값이 배열에 있는지 확인
date() 현재 날짜/시간 포맷팅

입문자를 위한 함수 사용 팁

함수를 더 잘 활용하고 싶은 입문자분들을 위해 팁을 모아봤습니다!

  • 함수 이름은 동작을 잘 나타내도록 명확하게 짓기
  • 비슷한 기능은 하나의 함수로 묶기
  • 기본값을 잘 활용하면 호출이 편해져요
  • return 값을 활용해 결과를 다른 함수에 넘기기
  • 너무 많은 역할을 한 함수는 쪼개기
Q 함수는 선언 전에 호출해도 되나요?

네. PHP는 스크립트 해석 시 전체를 먼저 읽기 때문에, 함수 선언이 코드 아래 있어도 호출이 가능합니다.

A PHP는 함수 선언 위치와 관계없이 호출 가능해요!
Q 함수 안에서 선언한 변수는 밖에서도 쓸 수 있나요?

아니요. 함수 안에서 선언된 변수는 지역 변수로, 함수 외부에서는 접근할 수 없습니다. 전역 변수로 사용하려면 global 키워드를 써야 해요.

A 지역 변수는 함수 밖에서 사용할 수 없어요!
Q return은 함수 내에서 꼭 필요한가요?

필수는 아닙니다. 출력만 하는 함수라면 return 없이도 괜찮아요. 하지만 값을 반환해 다른 곳에서 쓰려면 반드시 return이 필요해요.

A 출력용이면 return 없어도 OK! 값 전달하려면 필수!
Q 함수 안에서 다른 함수를 호출해도 되나요?

물론 가능합니다. 함수 안에서 다른 함수를 부르면 코드를 더 깔끔하고 구조적으로 만들 수 있어요. 특히 기능을 분리할 때 자주 씁니다.

A 함수 안에서 다른 함수 호출? 완전 가능해요!
Q 함수 안에서 echo와 return 둘 다 쓰면 되나요?

기술적으로 가능하지만, 한 함수가 출력도 하고 값을 반환하면 혼란스러울 수 있어요. 하나의 역할만 하는 게 좋습니다 (SRP 원칙).

A 출력용 함수 vs 반환용 함수는 분리하는 게 좋아요!
Q 함수 이름을 중복해서 선언하면 어떻게 되나요?

에러가 발생합니다. PHP에서는 동일한 이름의 함수를 두 번 이상 정의할 수 없어요. 이름 충돌에 주의하세요!

A 함수 이름은 유일해야 합니다! 중복은 에러예요.

 

함수는 처음엔 어렵게 느껴지지만, 익숙해질수록 개발이 훨씬 편해지고 즐거워져요. 저도 예전에 반복문에 코드를 줄줄 복붙하다가, “이걸 함수로 묶으면 어떨까?” 하는 생각에 처음 함수를 써봤죠. 그리고 그 순간! 코드가 너무 깔끔해지는 걸 느끼면서 “아… 이게 진짜 개발이구나!” 싶었어요. 지금은 간단한 출력도 습관처럼 함수로 감싸서 쓰게 되더라고요. 여러분도 오늘부터 함수 하나씩 연습해보세요. “이 코드, 함수로 뺄 수 없을까?” 이런 질문을 계속 던지면 실력이 정말 빨리 늘어요. 여러분의 코딩, 함수와 함께 훨씬 더 우아해지길 응원합니다 💜

728x90