如果变量不为空,我想显示一些html代码,否则我想不显示任何内容。
我已尝试过此代码,但无效:
<?php
$web = the_field('website');
if (isset($web)) {
?>
<span class="field-label">Website: </span><a href="http://<?php the_field('website'); ?>" target="_blank"><?php the_field('website'); ?></a>
<?php
} else {
echo "Niente";
}
?>
答案 0 :(得分:77)
if (!empty($web)) {
?>
<span class="field-label">Website: </span><a href="http://<?php the_field('website'); ?>" target="_blank"><?php the_field('website'); ?></a>
<?php
} else { echo "Niente";}
答案 1 :(得分:16)
isset
也会返回 true 。仅当变量 null 时,isset
才会返回false。你应该做什么:
if (!empty($web)) {
// foo
}
这将检查他的变量是否为空。
希望这有帮助
答案 2 :(得分:9)
只需使用if ($web)
即可。如果变量具有任何 truthy 值,则为true
。
您不需要isset
或empty
,因为您知道该变量存在,因为您刚刚将其设置在上一行中。
答案 3 :(得分:2)
我不知道
if(!empty($var))
如何造成混淆,但我同意if ($var)
更简单。 - vanneto Mar 8 '12 at 13:33因为
empty
具有抑制不存在的变量的错误的特定目的。除非您需要,否则您不想压制错误。 Definitive Guide To PHP'sisset
Andempty
详细解释了问题。 - deceze♦Mar 9 '12 at 1:24
关注错误抑制部分,如果变量是数组,其中键被访问可能会或可能不会被定义:< / p>
if(empty($web['status']))
或if($web['status'])
会产生:
错误:未定义索引:状态
要在不触发错误的情况下访问该密钥:
if(isset($web['status']) && $web['status'])
或if(isset($web['status']) && !empty($web['status']))
。 为什么?如果第一个条件(isset
)为FALSE
,则不会测试第二个条件。
但是,作为deceze♦ pointed out,定义变量的 truthy 值使!empty
变得多余,但您仍需要记住PHP假定以下示例为{{1 }}:
FALSE
null
或''
""
0.0
0
或'0'
"0"
因此,如果 zero 是您想要检测的有意义的状态,那么您应该实际使用字符串和数字比较:
无错误和零检测:
'0' + 0 + !3
通用条件(if(isset($web['status'])){
if($web['status'] === '0' || $web['status'] === 0 ||
$web['status'] === 0.0 || $web['status']) {
// not empty: use the value
} else {
// consider it as empty, since status may be FALSE, null or an empty string
}
}
)应留在整个陈述的末尾。
答案 4 :(得分:0)
if(!empty($web))
{
echo 'Something';
}
答案 5 :(得分:0)
您正在使用isset
,isset
所做的是检查变量是否已设置(“存在”)且不是NULL
。您正在寻找的是empty
,它检查变量是否为空,即使它已设置。要检查什么是空的,什么是空的,请看:
http://php.net/manual/en/function.empty.php
同时检查http://php.net/manual/en/function.isset.php isset
究竟做了什么,这样您就可以理解为什么它没有按预期执行。
答案 6 :(得分:0)
if($var !== '' && $var !== NULL)
{
echo $var;
}
答案 7 :(得分:0)
您的问题在于the_field()
,它适用于高级自定义字段,一个wordpress插件。
如果要在变量中使用字段,则必须使用此字段:$web = get_field('website');
。
答案 8 :(得分:0)
我希望这也会奏效,尝试使用“is_null”
<?php
$web = the_field('website');
if (!is_null($web)) {
?>
....html code here
<?php
} else {
echo "Niente";
}
?>
http://php.net/manual/en/function.is-null.php
希望适合你..
答案 9 :(得分:-5)
似乎人们正在使这一点复杂化。回到原来的问题, “ ...如果变量不为空,请回显一些HTML代码。” “如果变量不为空,我想显示一些HTML代码,否则我想不显示任何内容。”
简单方法:
<?php if (!empty($var)) echo "Some Html Code Here"; ?>
如果您的变量不为空,则会显示“此处有一些HTML代码”。如果它是空的,就不会发生任何事情。