что я пытаюсь сделать, проверьте $_GET['mode']
для определенных типов страниц,
если режим избранный, страница rss или my_uploads, тогда не показывать ссылку RSS
как это
<?php
$mode = $_GET['mode'];
if($mode == 'favorites' || $mode == 'rss' || $mode == 'my_uploads'){
$RSS_link = null;
}else{
$RSS_link = create rss link logic here ;
}
затем позже показывать ссылку на RSS FEED, только если ссылка создана следующим образом
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
приведенный выше код работает нормально и показывает ссылку на RSS-канал только тогда, когда страницы не являются избранными, rss, my_uploads
но если изменить RSS создание условия, как это.
<?php
if($mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'){
$RSS_link = create rss link logic here ;
}else{
$RSS_link = null;
}
то есть просто меняя операторов на противоположные и перемещаясь, если в другое, и еще, если,
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
и затем попытайтесь показать ссылку RSS FEED, она показывает ссылку, независимо от того, какой режим установлен.
Почему это происходит?
Как я могу это исправить ?
Вы должны изменить свое состояние
$mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'
в
$mode != 'favorites' && $mode != 'rss' && $mode != 'my_uploads'
Это распространенный вариант использования Законы де Моргана
Вы всегда можете проверить свою логику с таблицами.
$mode = 'favorites';
$mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'
// ^ false ^ true ^ true
// ^ true
// ^ true
Результат верный.
$mode = 'favorites';
$mode != 'favorites' && $mode != 'rss' && $mode != 'my_uploads'
// ^ false ^ true ^ true
// ^ false
// ^ false
Результат ложный.
Других решений пока нет …