if문의 중첩
if의 세가지 구문들은 각각 단독으로 사용되기도 하지만 경우에 따라서는 여러 개의 구문이 중첩되어 사용됩니다.
생년월일에 따라 만 나이를 계산하는 프로그램을 생각해봅시다. 만 나이는 생년월일과 오늘의 날짜에 따라 계산됩니다.
다음 예제에서는 만 나이를 계산하기 위해 if~ elseif~ else 구분 안에 if~ else~ 구문을 중첩해서 사용하고 있습니다.
03/ex3-6.php
<?php
$now_year = 2022; # 02
$now_month = 4;
$now_day = 15; # 04
$birth_year = 2000; # 06
$birth_month = 7;
$birth_day = 10; # 08
if ($birth_month < $now_month) # 10
$age = $now_year - $birth_year;
else if ($birth_month == $now_month) # 12
{
if ($birth_day <= $now_day)
$age = $now_year - $birth_year;
else
$age = $now_year - $birth_year - 1;
}
else # 19
$age = $now_year - $birth_year - 1;
echo "오늘 날짜 : ".$now_year."/".$now_month."/".$now_day."<br>";
echo "출생년월일 : ".$birth_year."/".$birth_month."/".$birth_day."<br>";
echo "만 나이 : ".$age."세";
?>

02~04
$now_year = 2022;
$now_month = 4;
$now_day = 15;
현재 연월일을 2022년 4월 15로 설정합니다.
06~08
$birth_year = 2000;
$birth_month = 7;
$birth_day = 10;
출생 연월일을 2000년 7월 10일로 설정합니다.
10, 12, 19
if~ elseif~ else~ 구문을 이용하여 출생 월($birth_month)과 현재 월($now_month)을 비교합니다.
여기서는 $birth_month가 7이고, $now_month는 4이다. 따라서 else에 속하는 나이 $age는 '2020 - 2000 - 1'의 수식에 의해 21의 값을 가집니다.
이번에는 다음과 같이 월 $birth_month가 4인 경우를 생각해봅시다.
| $birth_year = 2000; $birth_month = 4; $birth_day = 10; |
elseif의 조건식은 4 == 4가 되어 참이 됩니다. 따라서 if~ else~ 구문이 실햅됩니다.
if의 조건식에서 출생 일($birth_day)과 현재 일($now_day)을 서로 비교하면 만 나이를 계산합니다. 이 경우의 만 나이는 20세가 됩니다.
정리하면 if문은 if~ 구문, if~ else~ 구문, if~ elseif~ else~ 구문 중의 하나가 단독으로 사용될 수 있고, 경우에 따라서는 이 if구문들이 서로 중첩되어 사용되기도 합니다.
'프로그래밍 언어 > PHP' 카테고리의 다른 글
| while 문 (0) | 2026.05.05 |
|---|---|
| switch문 (0) | 2026.05.05 |
| if~ elseif~ else~ (0) | 2026.05.04 |
| if~ else~ 구문 (0) | 2026.05.04 |
| if~ 구문 (0) | 2026.05.03 |