채택완료

php if문을 간단하게 줄일 수 있나요?

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

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

Copy
<?php

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>';
}

?>
|

답변 6개

채택된 답변
+20 포인트
2019-10-11 (금) 13:05:34
<?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;
}
?>
2019-10-11 (금) 17:31:09

답변 감사합니다

2019-10-11 (금) 14:06:50
Copy
$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"
];

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>";
}
2019-10-11 (금) 13:38:00

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

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

Copy
$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>'
];


if (array_key_exists($_GET["bo_table"], $arr)) {
    $icon = $arr[$_GET["bo_table"]];
}

echo $icon;

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

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