
함수는 함수 안에 있는 조건문의 결과에 따라 다른 값을 반환할 수 있다.
예시
function get_stock_message($stock) { if ($stock >= 10) { return 'Good availability'; } if ($stock > 0 && $stock < 10) { return 'Low stock'; } return 'Out of stock'; }
매개변수를 옵셔널로 만들려면, 그 매개변수에 대한 값을 제공하지 않고 함수를 호출할 경우에 사용될 디폴트값을 지정하면 된다. 디폴트값은 함수 정의에서 매개변수 이름 다음에 제공된다.
예시
function calculate_cost($cost, $quantity, $discount = 0) { $cost = $cost * $quantity; return $cost - $discount; } $cost = calculate_cost(5, 3);
일부 함수는 많은 매개변수를 가지고 있다. PHP 8에서는 함수를 호출할 때 인수 앞에 매개변수 이름을 추가할 수 있다. 이것을 지정 인수 또는 지정 매개변수라고 부른다.
지정 인수는
- 각 인수가 무엇을 하는지 명확하게 지정한다.
- 디폴트값을 제공하거나 빈 따옴표를 사용하지 않고 옵셔널 인수를 건너뛸 수 있게 한 다.
지정 인수 없이 함수를 호출할 때 인수는 함수 정의에 있는 매개변수와 동일한 순서로 제공되어야 한다. 디폴트값이 있는 경우 인수로 디폴트값을 지정하거나 빈 따옴표를 사용해야 한다.
지정 인수를 사용하면, 인수와 매개변수 이름은 콜론으로 구분되며 어떤 순서로 인수를 써도 상관없다.
예시
<?php function calculate_cost($cost, $quantity, $discount = 0, $tax = 20,) { $cost = $cost * $quantity; $tax = $cost * ($tax / 100); return ($cost + $tax) - $discount; } ?> <!DOCTYPE html> <html> <head> <title>Functions with Parameters</title> <link rel="stylesheet" href="css/styles.css"> </head> <body> <h1>The Candy Store</h1> <h2>Chocolates</h2> <p>Dark chocolate $<?= calculate_cost(quantity: 10, cost: 5, tax: 5, discount: 2); ?></p> <p>Milk chocolate $<?= calculate_cost(quantity: 10, cost: 5, tax: 5); ?></p> <p>White chocolate $<?= calculate_cost(5, 10, tax: 5) ?></p> </body> </html>

출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022