• ベストアンサー

もっとシンプルに書きたいのですが・・・

以下の内容をもっとシンプルに書きたいのですが思い浮かびません。 どなたかアドバイスお願い致します。 if(!(empty($test1))){ if(!(empty($test2))){ if(!(empty($test3))){ echo '<img src="'.$test1.'"><img src="'.$test2.'"><img src="'.$test3.'"><br>'; } else{ echo '<img src="'.$test1.'"><img src="'.$test2.'"><br>'; } }else{ echo '<img src="'.$test1.'"><br>'; } }else{ echo ''; }

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じで? <? $str=''; $str=!empty($test3)?'<img src="'.$test3.'">':''; $str=!empty($test2)?'<img src="'.$test2.'">'.$str:''; $str=!empty($test1)?'<img src="'.$test1.'">'.$str:''; print $str; ?>

feed12
質問者

お礼

どうもありがとうございました。

その他の回答 (3)

回答No.4

yambejpさん、ご指摘/修正ありがとうございます。 要件を完全に見落としてました。 質問者さんごめんなさい。

feed12
質問者

お礼

とんでもないです。 こちらこそ他のやり方をおしえてくださってありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

あ、<br>がいるんですね・・・ #2さんは若干フローが違うのでは? $test1が空なら、$test2や$test3にデータがはいっていても 表示したくないんですよね? であればbreakしてやらないといけないでしょう <?php $result = ''; foreach(array($test1, $test2, $test3) as $t){ if(!empty($t)) $result .= sprintf('<img src="%s">', $t); else break; } if(!empty($result)) $result .= '<br />'; echo $result; ?>

回答No.2

<?php $result = ''; foreach(array($test1, $test2, $test3) as $t){ if(!empty($t)) $result .= sprintf('<img src="%s">', $t); } if(!empty($result)) $result .= '<br />'; echo $result; ?> こんな書き方も。

関連するQ&A