#php #if-statement
#php #if-оператор
Вопрос:
Добрый день, ребята,
Я создал приятную функцию избранного с 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>
Проблема в том, что когда favorite = 0, отображаются как $ favorite, так и $unsavorite. При favorite = 1 корректно отображается только $ unsavorite. Конечно, это должно быть $ favorite ИЛИ $ unfavorite. Я предполагаю, что проблема для вас ясна и проста, пожалуйста, помогите 🙂
Заранее спасибо
Комментарии:
1. Не могли бы вы также опубликовать окружающий код? Это должно сработать.
2. В вашем описании вы ссылаетесь на
favorite
но ваша переменная в коде$favorites
. Опечатка? Пожалуйста, покажите код, который устанавливает переменную$favorites
.3. Что вы получаете, когда вы
var_dump($favorites)
? Случается ли это также в каком-либо цикле?4. Всем большое спасибо! Нашел решение 🙂 Смотрите решение Хармена
Ответ №1:
Проще использовать только одну переменную:
$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. большое спасибо всем за помощь, решение Harmens сработало 🙂 Снова чему-то научился! Хорошего дня
Ответ №2:
Если вы хотите проверить $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
Ответ №3:
Является $favorites
целым числом?
В любом случае попробуйте использовать три знака равенства ( ===
) или else
вместо второго if
:
if ( $favorites === 0 )
{
// ...
}
else // or if ($favorites === 1)
{
// ...
}
Ответ №4:
Вы создаете переключение, поэтому вам нужна только одна переменная:
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;
Ответ №5:
Тот же код работает со мной, если я назначил $ favorites = 0; или $ favorites = 1;
Вы также можете использовать if else
$избранное = 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>';
}