본문으로 바로가기


  if문, elseif문, esle문을 사용하면 조건으로 처리를 분기할 수 있습니다. 조건 분기의 제어문에서 대표적인 것은 if문으로, if문에서는 최초로 식을 평가하고 결과(true 또는 false)를 판단한 후 true이면 실행, false이면 실행하지 않습니다. 만약 조건에 맞지 않으면 다음은 elseif문으로 조건을 판단하고, 마지막으로 어떤 조건에도 맞지 않으면 else문으로 처리합니다.


  ● if문, elseif문, else문의 예

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>조건으로 처리를 분기하려면?</title>
</head>
<body>
<div>
<?php
// 변수에 수치를 대입합니다.
$point     = 30;
$line      = 80;
$underline = 40;

// 변수를 비교합니다.
if ($point >= $line) {
  echo '합격 라인';
} elseif ($point >= $underline) {
  echo '추가 시험 라인';
} else {
  echo '낙제 라인';
}
?>
</div>
</body>
</html>

  앞의 예제는 변수 $point의 값을 조건식에서 평가하고 결과가 false라고 판단되어 조건 분기의 제어문이 끝까지 실행된 예입니다. 만약 처음 if문의 조건식에서 true로 평가되면 처리 스크립트가 실행되고 합격 라인으로 표시되면서 elseif문 이하는 실행되지 않습니다.

  if문이나 else문은 한 줄로 기술할 수 있고 다음 두 개의 if문은 각각 같은 결과를 얻을 수 있습니다. 단 중괄호( { } )를 생략하면 소소가 읽기 어려워지거나 두 줄 이상 처리될 경우에는 생략할 수 없어서 버그의 원인이 되기 쉬우므로 중괄호를 사용하는 것이 좋습니다.


● if문의 생략 표기

  

  if ($won == true) {

      echo ' 한국돈';

  }


  if ($won == true) echo '한국돈';



● 논리값 생략하기


  if ($won == true) {

      echo '한국돈';

  }


  if ($won) {

      echo '한국돈';

  }


  if ($won != true) {

      echo '외국돈';

  }


  if ( ! $won) {

      echo '외국돈';

  }

 

  논리값으로 false를 생략하려면 변수의 앞에 '!'를 붙입니다. 논리값을 생략할 경우 다음과 같은 값은 false를 되돌려줍니다.


☞ 0 (정수의 0)

☞ 0,0 (부동 소수점의 0)

☞ '' (공백)

☞ '0' (문자열의 0)

☞ null

☞ 요소가 0인 배열



● 조건의 숫자를 고정시키지 않고 변수로 설정하기


  if문에 한정된 것은 아니지만, 뒤에서의 조건 변경에도 신속히 대응하려면 숫자 등의 값을 미리 변수나 상수에 저장해 두고 조건식을 쓰는 것이 좋습니다. 다음과 같이 예제를 작성하면 기상 시간이 바뀌어도 $request의 값만 변경해서 대응할 수 있습니다.


<?php

// 자명종 메일 프로그램

$now = date('H');

// 기상시간 지정

$request =7;


if ($now == $request) {

    // 메일 전송 코드

}