2012-02-17 8 views
1

I if 문 다음과 같은 설정 :경우 문

<?php 

if (!empty($sn1link) && !empty($sn1)) { 
    echo('<a href="'.$sn1link.'" target="_blank"><button class="lbutton-content">'.$sn1.'</button></a>'); 
} 

if (!empty($sn2link) && !empty($sn2)) { 
    echo('<a href="'.$sn2link.'" target="_blank"><button class="lbutton-content">'.$sn2.'</button></a>'); 
} 

if (!empty($sn3link) && !empty($sn3)) { 
    echo('<a href="'.$sn3link.'" target="_blank"><button class="lbutton-content">'.$sn3.'</button></a>'); 
} 

if (!empty($sn4link) && !empty($sn4)) { 
    echo('<a href="'.$sn4link.'" target="_blank"><button class="lbutton-content">'.$sn4.'</button></a>'); 
} 

if (!empty($sn5link) && !empty($sn5)) { 
    echo('<a href="'.$sn5link.'" target="_blank"><button class="lbutton-content">'.$sn5.'</button></a>'); 
?> 

나는이 if 문을 결합하는 더 우아한 방법을 부탁합니다. 나는 else if을 시도했지만 분명히 이것은 TRUE 문을 모두 반환하려는 반면 TRUE을 반환하는 첫 번째 if 문만 표시합니다. 나는 switch 중 하나를 사용할 것이라고 생각하지 않습니다.

+0

http://codereview.stackexchange.com/ – j08691

답변

0

왜 반복하고 배열을 사용?

foreach($sn_array as $link => $text): 
    if(!empty($link) && !empty($text)) echo ...; 
endforeach; 
+0

좋습니다. 완벽하게 작동합니다. 나는 이것으로 시작해야한다고 생각 했어야했다. – Ryan

+0

@ Ryan 이것은 원하지 않는 충돌을 일으킬 것입니다. – Alexander

+0

@Alexander 왜 그런가요? 여기서 재미 있지는 않아, 더 잘 이해하고 싶을뿐입니다. – Ryan

0

아마도 변수 변수 루프 :

<?php 

for ($i = 1; $i <= 5; $i++) { 

    $link = 'sn'.$i.'link'; 
    $button = 'sn'.$i; 

    if (!empty($$link) && !empty($$button)) { 
     echo('<a href="'.$$link.'" target="_blank"><button class="lbutton-content">'.$$button.'</button></a>'); 
    } 
} 
+1

그게 효과가 있지만, 일반적으로 변수 변수를 사용하는 것은 나쁜 습관으로 간주됩니다. – Kenaniah

0

값을 배열로 만드는 루프를 만들어야합니다. 하나의 if 문과 같은 echo 문이 필요합니다. 값이 존재하지 않는 경우, 당신은 단순히 처음에 $ snList 배열에 추가하지 않기 때문에

$snList = array($sn1 => $sn1Link, $sn2 => $sn2Link, $sn3 => $sn3Link); 

foreach ($snList as $name => $link) { 
    echo('<a href="'.$link.'" target="_blank"><button class="lbutton-content">'.$name.'</button></a>'); 
} 

당신은 심지어는 if 문이 필요하지 않습니다.

$snList = array(); 
$snList[$key] = $value; 
0

나는이 일이 얼마나 더 우아한 모르겠어요하지만 당신은 같은 기능을 사용할 수 있습니다이있는 경우 장소에보다 더에

function getButtonContent($link, $content) { 

     if (!empty($link) && !empty($content)) { 
      echo('<a href="'.$link.'" target="_blank"><button class="lbutton-content">'.$content.'</button></a>'); 
     } 
    } 

    getButtonContent($sn1link, $sn1); 
    getButtonContent($sn2link, $sn2); 
    getButtonContent($sn3link, $sn3); 

etc.... 

또는 함수 접근법 비슷한 뭔가를 도움이 될 수 있습니다.