PHP - 如果变量不为空,则回显一些html代码

时间:2012-03-06 22:21:11

标签: php html variables

如果变量不为空,我想显示一些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";
    }
?>

10 个答案:

答案 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";}

http://us.php.net/manual/en/function.empty.php

答案 1 :(得分:16)

即使变量为“”,

isset也会返回 true 。仅当变量 null 时,isset才会返回false。你应该做什么:

if (!empty($web)) {
    // foo
}

这将检查他的变量是否为空。

希望这有帮助

答案 2 :(得分:9)

只需使用if ($web)即可。如果变量具有任何 truthy 值,则为true

您不需要issetempty,因为您知道该变量存在,因为您刚刚将其设置在上一行中。

答案 3 :(得分:2)

  

我不知道if(!empty($var))如何造成混淆,但我同意if ($var)更简单。 - vanneto Mar 8 '12 at 13:33

     
    

因为empty具有抑制不存在的变量的错误的特定目的。除非您需要,否则您不想压制错误。 Definitive Guide To PHP's isset And empty详细解释了问题。 - deceze♦Mar 9 '12 at 1:24

  

关注错误抑制部分,如果变量是数组,其中被访问可能会或可能不会被定义:< / p>

  1. if(empty($web['status']))if($web['status'])会产生:
      

    错误:未定义索引:状态

  2. 要在不触发错误的情况下访问该密钥:

    1. if(isset($web['status']) && $web['status'])
    2. if(isset($web['status']) && !empty($web['status']))
    3. 为什么?如果第一个条件(isset)为FALSE,则不会测试第二个条件。

      但是,作为deceze♦ pointed out,定义变量的 truthy 值使!empty变得多余,但您仍需要记住PHP假定以下示例为{{1 }}:

      • FALSE
      • null''
      • ""
      • 0.0
      • 0'0'
      • "0"

      因此,如果 zero 是您想要检测的有意义的状态,那么您应该实际使用字符串和数字比较:

      1. 无错误和检测:

        '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)

您正在使用issetisset所做的是检查变量是否已设置(“存在”)且不是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代码”。如果它是空的,就不会发生任何事情。