Menu
Coddy logo textTech

가변 함수

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 6번째.

가변 함수는 PHP에서 함수를 동적으로 호출하는 또 다른 방법을 제공합니다. call_user_func()를 사용하는 대신, 함수 이름을 포함하는 변수를 함수 자체인 것처럼 취급하여 함수를 직접 호출할 수 있습니다.

구문은 간단합니다. 함수 이름을 포함하는 변수가 있는 경우, 변수에 괄호를 추가하여 해당 함수를 호출할 수 있습니다:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // 출력: Hello World!
?>

이것은 매개변수를 받는 함수에서도 작동합니다. 괄호 안에 인수를 전달하기만 하면 됩니다:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // Outputs: Hello, Alice!
?>

가변 함수는 코드를 동적으로 실행하는 깔끔하고 직관적인 방법을 제공합니다. 이 기능은 조건이나 사용자 입력에 따라 서로 다른 함수를 호출해야 할 때 특히 유용하며, 코드를 더욱 유연하고 적응력 있게 만들어 줍니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

쉬움

세 개의 함수를 만드세요: 두 개의 숫자(length와 width)를 받아 그 곱을 반환하는 calculateArea, 두 개의 숫자를 받아 그 합의 두 배를 반환하는 calculatePerimeter, 그리고 두 개의 숫자를 받아 그 제곱의 합의 제곱근을 반환하는 calculateDiagonal입니다.

세 개의 입력을 받게 됩니다: 연산 이름("area", "perimeter", 또는 "diagonal"), length, 그리고 width입니다. 세 입력을 모두 읽고, 함수 이름을 변수에 저장한 뒤, 가변 함수(variable function) 구문을 사용하여 두 측정값과 함께 해당 함수를 호출하고 결과를 출력하세요.

입력 형식: 세 줄 - 첫 번째 줄은 연산 이름, 두 번째 줄은 length(소수점을 포함할 수 있는 숫자), 세 번째 줄은 width(소수점을 포함할 수 있는 숫자)를 포함합니다.

예상 출력: 계산 결과

치트 시트

가변 함수를 사용하면 함수 이름이 포함된 변수를 함수 자체로 취급하여 함수를 동적으로 호출할 수 있습니다.

기본 구문 - 함수 이름이 포함된 변수에 괄호를 추가합니다:

<?php
function sayHello() {
    echo "Hello World!";
}

$functionName = "sayHello";
$functionName();  // 출력: Hello World!
?>

가변 함수는 매개변수와도 함께 작동합니다:

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // 출력: Hello, Alice!
?>

직접 해보기

<?php
// 입력 읽기
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: 여기에 세 가지 함수를 생성하세요 (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: 가변 함수 구문을 사용하여 적절한 함수를 호출하고 결과를 저장하세요

// 결과 출력
echo $result;
?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨