PHP 奇怪 If Else 循环输出如果我与当前条件完全相反
PHP strange If Else loop output if i make exact opposite of current condition
我想做什么检查 $_GET['mode']
特定页面类型,
如果模式是收藏夹、rss 或 my_uploads 页面,则不显示 RSS link
像这样
<?php
$mode = $_GET['mode'];
if($mode == 'favorites' || $mode == 'rss' || $mode == 'my_uploads'){
$RSS_link = null;
}else{
$RSS_link = create rss link logic here ;
}
然后仅当 link 是这样创建时才向 RSS FEED 显示 link
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
以上代码工作正常,仅当页面不是收藏夹时显示 RSS FEED Link,rss,my_uploads
但是如果像这样改变RSS创建条件。
<?php
if($mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'){
$RSS_link = create rss link logic here ;
}else{
$RSS_link = null;
}
即只需将运算符更改为相反并将 if 移动到 else,将 else 移动到 if,
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
然后尝试显示 RSS FEED Link,它显示 link,无论设置什么模式。
为什么会这样?
我该如何解决这个问题?
你需要改变你的条件
$mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'
到
$mode != 'favorites' && $mode != 'rss' && $mode != 'my_uploads'
这是常见的用法变体De Morgan's laws
你总是可以用表格检查你的逻辑。
$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
结果为假。
我想做什么检查 $_GET['mode']
特定页面类型,
如果模式是收藏夹、rss 或 my_uploads 页面,则不显示 RSS link
像这样
<?php
$mode = $_GET['mode'];
if($mode == 'favorites' || $mode == 'rss' || $mode == 'my_uploads'){
$RSS_link = null;
}else{
$RSS_link = create rss link logic here ;
}
然后仅当 link 是这样创建时才向 RSS FEED 显示 link
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
以上代码工作正常,仅当页面不是收藏夹时显示 RSS FEED Link,rss,my_uploads
但是如果像这样改变RSS创建条件。
<?php
if($mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'){
$RSS_link = create rss link logic here ;
}else{
$RSS_link = null;
}
即只需将运算符更改为相反并将 if 移动到 else,将 else 移动到 if,
<?=(isset($RSS_link)) ? '<a href="'.$RSS_link.'">RSS FEED</a>' : '' ;?>
然后尝试显示 RSS FEED Link,它显示 link,无论设置什么模式。
为什么会这样? 我该如何解决这个问题?
你需要改变你的条件
$mode != 'favorites' || $mode != 'rss' || $mode != 'my_uploads'
到
$mode != 'favorites' && $mode != 'rss' && $mode != 'my_uploads'
这是常见的用法变体De Morgan's laws
你总是可以用表格检查你的逻辑。
$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
结果为假。