-1

変数に何かが割り当てられているかどうかをチェックする単純なphpifステートメントが必要です。変数が空の場合は何も表示したくないのですが、変数に何かが割り当てられている場合は、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'];

$instance['twitter']これにより、または''のいずれかに設定されます。どちらもnullではありません。

と同じ関数の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 に答える