如果是简单的初学者问题

时间:2011-11-10 13:47:58

标签: php if-statement

美好的一天,

我用php mysql和ajax做了一个甜蜜的收藏夹功能,而且效果很好。现在我想在最爱= 0时显示'最喜欢'并在最喜欢= 1时显示'不喜欢'

    if ($favorites == 0) {
    $favorite = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}

if ($favorites == 1) {
    $unfavorite = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}

并在行中将其回显为:

<div id="favorites">' .($favorite). ' ' .($unfavorite). '</div>

问题是:当收藏夹= 0时,会显示$ favorite和$ unfavorite。当favorite = 1时,只有$ unfavorite正确显示。当然它应该是$最喜欢的OR $ unfavorite。我认为这个问题很清楚,很简单,请协助:)

提前致谢

5 个答案:

答案 0 :(得分:3)

只使用一个变量更容易:

$text = ''
if ($favorites == 0) {
  $text = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
} else {
  $text = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}

...

echo $text;

答案 1 :(得分:1)

如果要检查$favorite,则在控制语句中使用了错误的变量。此外,对于第二个elseif,使用if而不是if更好的编码习惯。还有一件事:管理一个结果变量更容易。

$output = "";
    if ($favorite == 0) {
    $output = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}

elseif ($favorite == 1) {
    $output = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}

...

echo $output; // Or whatever you want to do with your output

答案 2 :(得分:0)

$favorites是整数吗?

无论如何尝试使用三个等号(===)或else而不是第二个if

if ( $favorites === 0 )
{
  // ...
}
else // or if ($favorites === 1)
{
  // ...
}

答案 3 :(得分:0)

您正在进行切换,因此您只需要一个变量:

if(empty($favourites)){
   $fav_toggle = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>'; 
} else {
   $fav_toggle = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>'; 
}

echo $fav_toggle;

答案 4 :(得分:0)

如果我分配了$ favorites = 0,那么相同的代码正在为我工​​作;或$ favorites = 1;

你也可以使用if else

$ favorites = 1;

if ($favorites == 0) {
    $favorite = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}

else if ($favorites == 1) {
    $unfavorite = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}