function 함수이름() {
// 실행할 코드
}
함수이름();
function sayHello() {
echo "안녕하세요<br>";
}
sayHello(); // 함수 호출
함수에 값을 전달할 수 있습니다.
function greet($name) {
echo "안녕하세요, $name<br>";
}
greet("홍길동");
function add($a, $b) {
echo $a + $b;
}
add(3, 5); // 8 출력
함수는 return 키워드를 사용해 값을 반환할 수 있습니다.
function multiply($x, $y) {
return $x * $y;
}
$result = multiply(3, 4);
echo $result; // 12
return 이후의 코드는 실행되지 않습니다.
함수 매개변수는 기본값을 가질 수 있습니다.
function greet($name = "손님") {
echo "안녕하세요, $name<br>";
}
greet(); // 안녕하세요, 손님
greet("지민"); // 안녕하세요, 지민
기본값이 있는 매개변수는 항상 뒤에 위치해야 합니다.
PHP에는 세 가지 주요 스코프가 있습니다:
Local (지역 변수): 함수 내부에서 정의된 변수
Global (전역 변수): 함수 외부에서 정의된 변수
Static (정적 변수): 함수 내부에서 선언되며, 호출 간 값을 유지
function test() {
$x = 10; // 함수 안에서만 사용 가능
}
$x = 5;
function showX() {
global $x; // 전역 변수 $x를 사용
echo $x;
}
또는 GLOBALS 배열을 사용:
function showX() {
echo $GLOBALS['x'];
}
function counter() {
static $count = 0;
$count++;
echo $count . "<br>";
}
counter(); // 1
counter(); // 2
counter(); // 3
기본적으로 함수에 전달된 인자는 복사됩니다 (값에 의한 전달). 참조로 전달하려면 &를 사용합니다.
function addOne(&$num) {
$num++;
}
$a = 5;
addOne($a);
echo $a; // 6
function sum(...$numbers) {
$total = 0;
foreach ($numbers as $num) {
$total += $num;
}
return $total;
}
echo sum(1, 2, 3, 4); // 10
동적으로 함수가 정의되어 있는지 확인할 수 있습니다.
if (function_exists("myFunction")) {
myFunction();
}
이름 없이 정의된 함수이며 변수에 저장하거나 콜백으로 전달 가능
$greet = function($name) {
return "안녕하세요, $name";
};
echo $greet("지은");
간단한 표현식에 적합. use 없이 상위 스코프 변수를 자동 캡처
$multiply = fn($a, $b) => $a * $b;
echo $multiply(3, 4); // 12
개념 |
설명 |
---|---|
function |
함수 정의 |
return |
함수에서 값 반환 |
기본값 매개변수 |
인자 없이도 함수 호출 가능 |
global, static |
변수 스코프 제어 |
& |
참조 전달 |
... |
가변 인자 지원 |
익명 함수 |
이름 없는 함수, 콜백 등에 사용 |