Php 检查变量是否为空

Php 检查变量是否为空,php,html,forms,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>
<div class="entry"><?php $key='term'; echo get_post_meta($post->ID, $key, true); ?></div>
术语:
有时,这些变量可能是空的,在这种情况下,我不想显示空变量的标签。在上面的例子中,我想隐藏
术语:
部分。是否有一些简单的方法来检查像上面这样的php变量是否为空并防止显示标签

更新,这里是代码使用!空的

<?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->ID业务的全部内容

<?php if( isset( $var ) ): ?><p><?php echo $var ?></p><?php endif; ?>
如果设置了$var,它将显示带有$var的段落,否则将不显示任何内容

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

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


术语:
isset()
如果设置的值与
NULL
的值不同,则将传递
TRUE

empty()

  • (空字符串)
  • 0
    (0为整数)
  • “0”
    (0作为字符串)
  • NULL
  • FALSE
  • array()
    (空数组)
  • var$var(声明了一个变量,但类中没有值)
我假设您的
$key
已设置,但带有空字符串。因此,
empty()

<?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
    }
?>

术语:
isset()
如果设置的值与
NULL
的值不同,则将传递
TRUE

empty()

  • (空字符串)
  • 0
    (0为整数)
  • “0”
    (0作为字符串)
  • NULL
  • FALSE
  • array()
    (空数组)
  • var$var(声明了一个变量,但类中没有值)
我假设您的
$key
已设置,但带有空字符串。因此,
empty()
<?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
    }
?>
术语:

术语:

好吧,你的代码就在上面,$key永远不会为空,因此pre_框总是会显示出来。您正在设置
$key='term'
,这给了它一个值,所以
!空($key)
isset($key)
将始终为真


Casey的解决方案应该会给你你想要的结果。

好吧,就像你上面的代码一样,$key永远不会为空,因此pre_框将始终显示出来。您正在设置
$key='term'
,这给了它一个值,所以
!空($key)
isset($key)
将始终为真


Casey的解决方案应该会给出您想要的结果。

Term:
无论变量是否设置,文本/变量都会显示。
Term:
无论变量是否设置,文本/变量都会显示。@Thomas:好的,我知道了。当然,如果事先设置
$key
,它将永远不会为空;)@托马斯:好的,我现在明白了。当然,如果事先设置
$key
,它将永远不会为空;)这件事有速记吗?有速记吗?