避免显示不包含值的图标

时间:2014-04-18 17:04:23

标签: php html

我已经搜索了几个小时的解决方案。我想做的是让没有得到价值的图标(在php中)不显示。

这是我目前所拥有的图像。

因此,例如,如果只有twitter和facebook获得了值,它们应该只显示在屏幕上。

下面是代码,我希望有人能为此找到解决方案。 干杯!

 <ul class="social-buttons">
            <div class="wrapping">

                <a class="social" href="http://twitter.com/<?php echo $profile_data['twitter']; ?>" target="_blank"><li class="twitter"></li></a>

                <a class="social" href="http://facebook.com/<?php echo $profile_data['facebook']; ?>" target="_blank"><li class="facebook"></li></a>

                <a class="social" href="skype:<?php echo $profile_data['skype']; ?>?chat"><li class="skype"></li></a>

                <a class="social" href="http://instagram.com/<?php echo $profile_data['instagram']; ?>"><li class="instagram"></li></a>

                <a class="social" href="http://dribbble.com/<?php echo $profile_data['dribbble']; ?>"><li class="dribbble"></li></a>

                <a class="social" href="http://linkedin.com/in/<?php echo $profile_data['linkedin']; ?>"><li class="linkedin"></li></a>
            </div>
        </ul>

2 个答案:

答案 0 :(得分:3)

您需要将if语句与!empty()一起使用。 !empty()检查变量 NOT 是否为空。比继续代码。就像这里给出的例子一样:

<?php 
    if(!empty($profile_data['twitter'])){ 
?>
<a class="social" href="http://twitter.com/<?php echo $profile_data['twitter']; ?>" target="_blank"><li class="twitter"></li></a>
<?php 
    } 
?>

如果变量为空,则不会给出输出的代码,在您的情况下,<a>带有图标。

答案 1 :(得分:2)

我认为你可以这样做:

<ul class="social-buttons">
    <div class="wrapping">
       <?php if $profile_data['twitter'] {?>
          <a class="social" href="http://twitter.com/<?php echo $profile_data['twitter']; ?>" target="_blank"><li class="twitter"></li></a>
       <?php } ?>
         ....

</ul>
Imo,一种可能更好的方法是在您在视图中使用数据之前执行数据的预处理,即$profile_data,以便视图不再需要处理处理逻辑。之后,视图可以使用更简洁的构造输出您的链接,例如for循环,不使用任何条件分支。