함수(4)

minah moon·2023년 8월 4일

PHP

목록 보기
10/58
post-thumbnail

여러 개의 반환 구문

함수는 함수 안에 있는 조건문의 결과에 따라 다른 값을 반환할 수 있다.

예시

function get_stock_message($stock)
{
	if ($stock >= 10) {
    	return 'Good availability';
    }
    if ($stock > 0 && $stock < 10) {
    	return 'Low stock';
    }
    return 'Out of stock';
}
  1. 조건은 $stock 매개변숫값이 10 이상인지를 확인한다. 만약에 그렇다면 첫 번째 return 구문이 처리되고 이후의 다른 구문은 실행되지 않는다.
  2. 만약에 그 값이 0보다 크고 10보다 작다면, 두 번쨰 구문이 처리되고 이후의 다른 구문은 실행되지 않는다.
  3. 만약에 여전히 함수가 실행되고 있다면, $stock은 0의 값을 가지고 있을 것이므로 마지막 return 구문이 처리된다.

옵셔널 매개변수와 디폴트값

매개변수를 옵셔널로 만들려면, 그 매개변수에 대한 값을 제공하지 않고 함수를 호출할 경우에 사용될 디폴트값을 지정하면 된다. 디폴트값은 함수 정의에서 매개변수 이름 다음에 제공된다.

예시

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

0개의 댓글