가변 함수
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"); // 출력: Hello, Alice!
?>변수 함수는 코드를 동적으로 실행할 수 있는 깔끔하고 직관적인 방법을 제공합니다. 이 기능은 조건이나 사용자 입력에 따라 서로 다른 함수를 호출해야 할 때 특히 유용하며, 코드를 더욱 유연하고 적응력 있게 만들어 줍니다.
챌린지
쉬움세 개의 함수를 만드세요. 두 숫자(길이와 너비)를 받아 곱을 반환하는 calculateArea, 두 숫자를 받아 두 수의 합의 두 배를 반환하는 calculatePerimeter, 두 숫자를 받아 두 수의 제곱의 합의 제곱근을 반환하는 calculateDiagonal 함수를 만드세요.
세 가지 입력을 받습니다. 연산 이름("area", "perimeter" 또는 "diagonal"), 길이, 너비입니다. 세 입력을 모두 읽고, 함수 이름을 변수에 저장한 다음, 두 측정값을 사용해 가변 함수 구문으로 해당 함수를 호출하세요. 함수가 반환하는 값을 $result에 저장하세요. 아래 줄에서 그 값을 출력합니다.
입력 형식: 세 줄입니다. 첫 번째 줄에는 연산 이름이, 두 번째 줄에는 길이(소수가 포함될 수 있는 숫자)가, 세 번째 줄에는 너비(소수가 포함될 수 있는 숫자)가 들어 있습니다.
예상 출력: 계산 결과
직접 해보기
<?php
// 입력값 읽기
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: 여기에 세 함수(calculateArea, calculatePerimeter, calculateDiagonal)를 만드세요
// TODO: 가변 함수 구문을 사용해 적절한 함수를 호출하고 결과를 $result에 저장하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러