테스트 사이트 - 개발 중인 베타 버전입니다

php if문을 간단하게 줄일 수 있나요? 채택완료

ango 6년 전 조회 3,330

아래처럼 if문을 작성했는데

더 간단하게 줄일 수도 있나요?

 

</p>

<p><?php</p>

<p>if ($_GET["bo_table"]=="free") {

  echo '<i class="fa fa-comments" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="notice") {

  echo '<i class="fa fa-microphone" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="qna") {

  echo '<i class="fa fa-question-circle" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="mod") {

  echo '<i class="fa fa-wrench" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="tip") {

  echo '<i class="fa fa-info-circle" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="mod_tutorial") {

  echo '<i class="fa fa-cogs" aria-hidden="true"></i>';

}

elseif ($_GET["bo_table"]=="movie") {

  echo '<i class="fa fa-video" aria-hidden="true"></i>';

}

else {

  echo '<i class="fa fa-file" aria-hidden="true"></i>';

}</p>

<p>?></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트
<?php

switch($_GET["bo_table"]){
    case 'free' : echo '<i class="fa fa-comments" aria-hidden="true"></i>';
    break;
    case 'notice' : echo '<i class="fa fa-microphone" aria-hidden="true"></i>';
    break;
    case 'qna' : echo '<i class="fa fa-question-circle" aria-hidden="true"></i>';
    break;
    ..
    ..
    ..
    default : echo '<i class="fa fa-file" aria-hidden="true"></i>';
    break;
}
?>
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

답변 감사합니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p>$icons = [

    "free" => "fa-comments",

    "notice" => "fa-microphone",

    "qna" => "fa-question-circle",

    "mod" => "fa-wrench",

    "tip" => "fa-info-circle",

    "mod_tutorial" => "fa-cogs",

    "movie" => "fa-video"

];</p>

<p>if(in_array($_GET['bo_table'], $icons)) {

    echo "<i class='fa ".$icons[$_GET['bo_table']]."' aria-hidden='true'></i>";

} else {

    echo "<i class='fa fa-file' aria-hidden='true'></i>";

}</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

아르키어드

아니면 게시판 여분필드에 해당클래스명을 담아서 하심이..그럼 if문 한번만 돌리면될텐데욥...

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
6년 전

이런 방식도 괜찮을 것 같네요.

 

$icon = '<i class="fa fa-file" aria-hidden="true"></i>';

$arr  = [

      'free'   => '<i class="fa fa-comments" aria-hidden="true"></i>'

    , 'notice' => '<i class="fa fa-microphone" aria-hidden="true"></i>'

    , 'qna'    => '<i class="fa fa-question-circle" aria-hidden="true"></i>'

];</p>

<p>

if (array_key_exists($_GET["bo_table"], $arr)) {

    $icon = $arr[$_GET["bo_table"]];

}</p>

<p>echo $icon;</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

switch case 쓰셔도 무방할듯합니다

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인