-1

我需要一个简单的 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>';
    }

如果您想查看项目的其余代码,请在此处找到。

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

4

5 回答 5

3

您设置$twitter如下:

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

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

改为使用null

$twitter = empty( $instance['twitter'] ) ? null  : $instance['twitter']; 
于 2012-09-08T15:12:01.220 回答
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>';
    }
于 2012-09-08T15:11:07.290 回答
1

看起来这条线是你的问题:

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

不管数组中的索引是否为空,$twitter都会设置。如果为空:.'twitter'$instance'&nbsp;'

于 2012-09-08T15:11:08.837 回答
0

代码有点令人费解:

在第 175 行,它这样做:

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

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

和 on 201 在相同的功能:

if(!isset($twitter))

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

我建议将第 175 行更改为:

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

和第 201 行到:

if(empty($twitter))
于 2012-09-08T15:08:27.867 回答
0

更正你的行

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

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

在那之后,你的if条件就会起作用。

干杯。

于 2012-09-08T15:43:28.080 回答