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
,它将永远不会为空;)这件事有速记吗?有速记吗?