简单的PHP if语句不起作用

时间:2012-09-08 15:06:55

标签: php if-statement

我需要一个简单的php if语句来检查是否有任何内容分配给变量。如果变量为空,我不希望显示任何内容,但如果有变量分配给我,我想要显示一行html。

现在,无论是否为变量赋值,都会显示html。这是if语句:

if(!isset($twitter)) {
    echo '';
} else {
    echo '<li><a href="http://twitter.com/' . $twitter . '"><span class="ss-twitter ss-icon" style="background-color:' . $iconbgcolor . '; color:' . $iconcolor . '">L</span></a>';
    }

如果您想查看项目的其余代码here

我也尝试过使用空函数,但这也不行。

5 个答案:

答案 0 :(得分:3)

您将$twitter设置如下:

$twitter = empty( $instance['twitter'] ) ? '&nbsp;' : $instance['twitter']; 

所以$twitter始终设置且不会为空。 '&nbsp;'不是空字符串。

改为使用null

$twitter = empty( $instance['twitter'] ) ? null  : $instance['twitter']; 

答案 1 :(得分:1)

 $twitter = empty( $instance['twitter'] ) ? '&nbsp;' : $instance['twitter']; 

变量始终存在 尝试:

 $twitter = empty( $instance['twitter'] ) ? '' : $instance['twitter']; 

if(!empty($twitter)) {
    echo '';
} else {
    echo '<li><a href="http://twitter.com/' . $twitter . '"><span class="ss-twitter ss-icon" style="background-color:' . $iconbgcolor . '; color:' . $iconcolor . '">L</span></a>';
    }

答案 2 :(得分:1)

看起来这一行是您的问题:

$twitter = empty( $instance['twitter'] ) ? '&nbsp;' : $instance['twitter'];

因此,无论$twitter数组中的索引'twitter'是否为空,都将设置$instance。如果为空:'&nbsp;'

答案 3 :(得分:0)

代码有点令人费解:

在第175行,它执行此操作:

$twitter = empty( $instance['twitter'] ) ? '&nbsp;' : $instance['twitter'];

将其设置为$instance['twitter']或'' - 两者都不为空。

和on 201在同一个函数中:

if(!isset($twitter))

这意味着无论如何都会设置$twitter。如果它在175上为空,则它现在包含&nbsp;,这意味着设置。

我建议将第175行更改为:

$twitter = empty( $instance['twitter'] ) ? '' : $instance['twitter'];

和第201行:

if(empty($twitter))

答案 4 :(得分:0)

纠正你的行

$twitter = empty( $instance['twitter'] ) ? '&nbsp;' : $instance['twitter']; 

$twitter = empty( $instance['twitter'] ) ? '' : $instance['twitter']; 

之后,您的if条件将有效。

干杯。