检查变量是否为空

时间:2010-04-17 20:07:11

标签: php html forms

我有一些用户提交的变量,我希望在我的网站的不同部分显示如下:

<div class="pre_box">Term: </div>
<div class="entry"><?php $key='term'; echo get_post_meta($post->ID, $key, true); ?></div>

有时,这些变量可能为空,在这种情况下,我不想显示空变量的标签。在上面的示例中,我想要隐藏<div class="pre_box">Term: </div>部分。有没有一些简单的方法可以检查上面的php变量是否为空并阻止标签显示?

更新,这是使用!empty

的代码
<?php $key='term' ?>
<?php if( !empty( $key ) ): ?> 
<div class="pre_box">Term: </div>
<div class="entry">
<?php echo get_post_meta($post->ID, $key, true); ?>
</div> 
<?php endif; ?>

然而,无论如何,这仍然显示内容。我认为问题可能在于我定义$ key变量的方式。我试图从wordpress帖子中设置的自定义字段中提取数据 - 这就是$ post-&gt; ID业务的全部内容。

4 个答案:

答案 0 :(得分:3)

<?php 
    $post_meta = get_post_meta($post->ID, 'term', true);
    if (!empty($post_meta)) {
?>
        <div class="pre_box">Term: </div>
        <div class="entry"><?php echo $post_meta; ?></div>
<?php
    }
?>

答案 1 :(得分:1)

<?php if( isset( $var ) ): ?><p><?php echo $var ?></p><?php endif; ?>

如果设置了$ var,它将显示带有$ var的段落,否则不会显示任何内容

答案 2 :(得分:1)

如果isset()不起作用,请尝试使用empty()

<?php if( !empty( $key ) ): ?> 
    <div class="pre_box">Term: </div>
    <div class="entry">
         <?php echo get_post_meta($post->ID, $key, true); ?>
    </div> 
<?php endif; ?>
如果设置了值并且值与isset()不同,

TRUE将发送NULL

empty()会传递TRUE(因此!empty()会产生FALSE):

  
      
  • ""(空字符串)
  •   
  • 0(0为整数)
  •   
  • "0"(0为字符串)
  •   
  • NULL
  •   
  • FALSE
  •   
  • array()(空数组)
  •   
  • var $var;(声明的变量,但类中没有值)
  •   

我假设你的$key已设置但是有一个空字符串。因此,empty()是前往这里的方式。

答案 3 :(得分:0)

他们的代码在上面,$ key永远不会为空,因此将始终显示pre_box。您正在设置$key = 'term',这会为其提供一个值,因此!empty($key)isset($key)将始终为真。

凯西的解决方案应该为您提供您想要的结果。