我需要一个简单的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。
我也尝试过使用空函数,但这也不行。
答案 0 :(得分:3)
您将$twitter
设置如下:
$twitter = empty( $instance['twitter'] ) ? ' ' : $instance['twitter'];
所以$twitter
始终设置且不会为空。 ' '
不是空字符串。
改为使用null
。
$twitter = empty( $instance['twitter'] ) ? null : $instance['twitter'];
答案 1 :(得分:1)
$twitter = empty( $instance['twitter'] ) ? ' ' : $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'] ) ? ' ' : $instance['twitter'];
因此,无论$twitter
数组中的索引'twitter'
是否为空,都将设置$instance
。如果为空:' '
。
答案 3 :(得分:0)
代码有点令人费解:
在第175行,它执行此操作:
$twitter = empty( $instance['twitter'] ) ? ' ' : $instance['twitter'];
将其设置为$instance['twitter']
或'' - 两者都不为空。
和on 201在同一个函数中:
if(!isset($twitter))
这意味着无论如何都会设置$twitter
。如果它在175上为空,则它现在包含
,这意味着已设置。
我建议将第175行更改为:
$twitter = empty( $instance['twitter'] ) ? '' : $instance['twitter'];
和第201行:
if(empty($twitter))
答案 4 :(得分:0)
纠正你的行
$twitter = empty( $instance['twitter'] ) ? ' ' : $instance['twitter'];
到
$twitter = empty( $instance['twitter'] ) ? '' : $instance['twitter'];
之后,您的if
条件将有效。
干杯。