否则简单的初学者问题


if else simple beginner issue

大家好,

我做了一个甜蜜的收藏函数与php mysql和ajax,它的工作很棒。现在我想在favorite = 0时显示"favorite",在favorite = 1时显示"unfavorite"

    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>

问题是:当favorite = 0时,同时显示$favorite和$unfavorite。当favorite = 1时,只有$unfavorite被正确显示。当然,它应该是$favorite或$unfavorite。我想这个问题对你来说很清楚和简单,请帮助:)

Thanks in advance

只使用一个变量比较容易:

$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;

如果要检查$favorite,则在控制语句中使用了错误的变量。此外,对于第二个if,使用elseif而不是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

$favorites是整数吗?

无论如何尝试使用三个等号(===)或else代替第二个if:

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

你正在做一个切换,所以你只需要一个变量:

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;

同样的代码在我身上工作,如果我分配$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>';
}