• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

if 문 구조 관련

20.07.16 06:16 작성 조회수 88

0

if 도 <?php로 감싸고 else도 <?php로 감싸는 이유가 무엇인가요?
if 통째로 감싸면 작동이 안되는건가요?

기본적인 질문이라 죄송합니다. 검색해봐도 안나와서..

답변 1

답변을 작성해보세요.

1

안녕하세요 :) 기본적인 질문이라서 죄송하실 필요는 없어요~ 오히려 이런 것들이 검색해서도 잘 나오지 않으니까요. 

제가 영상에서 처음엔 echo를 이용해서 html을 출력하려고 하다가 html이 좀 복잡해진다고 느끼니까 PHP 태그를 닫고 html을 쓴 것을 보셨을 거예요. 즉, 필요에 따라 PHP 태그를 닫았다가 열기도 한다는 것을 짐작하실 수 있습니다.

예시를 한 번 보여 드릴 게요. 아래처럼 간단한 if문인 경우에는 그냥 PHP 태그를 닫지 않고 쓰는 편이 편할 것입니다.

<?php
if ($age > 18) {
    echo '성인입니다';
} else {
    echo '미성년자입니다.';
}

그런데 꽤 복잡한 html을 출력해야 한다고 해 봅시다. echo 만 이용하는 경우에는 좀 복잡해져요.

<?php
if ($is_success) {
    echo '<h1>결제 신청 성공</h1>';
    echo '<p class="description">아래와 같이 입금해 주시면 됩니다.</p>';
    echo '<ul>';
    echo '<li>입금 기한: 2020년 8월 1일</li>';
    echo '<li>금액: 50,000원</li>';
    echo '<li>은행: 국민은행</li>';
    echo '<li>계좌번호: 0000-00-000000-000</li>';
    echo '</ul>';
} else {
    echo '<h1>결제 신청 실패</h1>';
    echo '<p class="description">뭔가 오류가 발생했습니다. 아래 메시지를 웹사이트 관리자에게 알려 주고 문의해 주세요.</p>';
    echo '<ul>';
    echo "<li>에러: {$error_code}</li>";
    echo "<li>{$error_message}</li>";
    echo '<li>문의 이메일: <a href="mailto:support@example.com">support@example.com</a></li>';
    echo '<li>문의 전화: <a href="tel:02-0000-0000">02-0000-0000</a></li>';
    echo '</ul>';
}

이렇게 쓰는 경우 에디터의 html 자동완성 기능이나 컬러링이 제대로 작동하지 않게 되는 경우도 많고, 타자를 치기도 힘들어집니다. 그래서 그냥 PHP 태그를 닫고 작성을 하는 것이죠. PHP 태그를 닫고 작성을 하면 echo를 하는 것과 같은 효과를 내게 됩니다.

<?php
if ($is_success) { ?>
    <h1>결제 신청 성공</h1>
    <p class="description">아래와 같이 입금해 주시면 됩니다.</p>
    <ul>
        <li>입금 기한: 2020년 8월 1일</li>
        <li>금액: 50,000원</li>
        <li>은행: 국민은행</li>
        <li>계좌번호: 0000-00-000000-000</li>
    </ul>
<?php } else { ?>
    <h1>결제 신청 실패</h1>
    <p class="description">뭔가 오류가 발생했습니다. 아래 메시지를 웹사이트 관리자에게 알려 주고 문의해 주세요.</p>
    <ul>
        <li>에러: <?= $error_code ?></li>
        <li><?= $error_message ?></li>
        <li>문의 이메일: <a href="mailto:support@example.com">support@example.com</a></li>
        <li>문의 전화: <a href="tel:02-0000-0000">02-0000-0000</a></li>
    </ul>
<?php }

이렇게 if문 안에 들어가는 내용에 따라 개발자가 판단해서 PHP 태그를 열거나 닫거나 하는 것입니다.

혹시 해소되지 않은 의문이 있다면 추가로 질문해 주세요.

감사합니다.