当前位置: 首页 > 知识库问答 >
问题:

检查两个语句中的任何一个是否为真

甄越
2023-03-14

我正在检查变量“auth”是否设置在\u POST或\u GET上,并需要两个不同的操作。我已经设法让它与if/else一起工作了,但它看起来很丑陋,很浪费?

如果未设置POST,请选中GET。如果设置了GET,则不执行任何操作

if ( !isset( $_POST[ 'auth' ] ) ) 
{
  if (isset( $_GET[ 'auth' ] ) ) {
    //do nothing

  } else {
    //redirect
    header( 'Location: https://google.com' );
    exit();
  }
}

这里有一种全新的方法吗?像检查两者一样,如果两者都没有设置,则转到重定向,如果设置了一个,则继续页面?

if(isset($_GET['auth']) xor (isset($_POST['auth']))) {
    //do nothing
}else{
 //redirect
 header('Location: https://google.com');
 exit();
}

^如果这些是可以接受的陈述,“什么都不做”部分应该是什么?

共有2个答案

吕利
2023-03-14

您可以使用null合并(??)来链接各种值并默认为null,没有找到任何内容,然后检查null...

$auth = $_POST[ 'auth' ] ?? $_GET[ 'auth' ] ?? null;
if ( $auth == null )
{
    //redirect
    header( 'Location: https://google.com' );
    exit();
}
常波
2023-03-14

你可以像使用一样简单地做到这一点

if(!isset($_GET['auth']) && !isset($_POST['auth'])) {
  header('Location: https://google.com');
  exit();
}

 类似资料:
  • 问题内容: 一位访问员最近问我这个问题:给定三个布尔变量a,b和c,如果三个变量中至少有两个是true,则返回true。 我的解决方案如下: 他说,这可以进一步改善,但是如何呢? 问题答案: 而不是写: 写: 至于表达式本身,是这样的: 或此(无论您觉得更容易掌握): 它测试和准确一次,最多一次。 参考文献 JLS 15.25条件运算符?:

  • 问题内容: 有没有办法检查两个(非平凡的)选择是否等效? 最初,我希望两个选择在形式上等效,但是proving-sql-query-equivalency中的答案使 我停滞不前。 对于我的实际需要,我可以只检查两个选择的(实际)结果是否相同。 问题答案: 如果要比较查询结果,请尝试以下操作: 这将导致所有行仅由查询之一返回。

  • 在JavaScript中,如果窗口大小大于500px,我会告诉浏览器做些什么。我是这样做的: 这很有效,但我想用同样的方法,但有一系列的数字。所以我想告诉我的浏览器,如果窗口大小在500px到600px之间,我就去做一些事情。我知道这是行不通的,但我是这么想的: 在JavaScript中,这可能吗?

  • 本文向大家介绍如何检查一个对象是否为空,包括了如何检查一个对象是否为空的使用技巧和注意事项,需要的朋友参考一下 检查一个数组为空很容易,直接调用 length 方法即可,那么如何检查一个对象是否为空呢 ❓ 这里的空指的是对象没有自有属性 假设这里有两个对象,一个是 obj 一个是 anotherObj 想了半天查看对象是否有 Symbol 属性只能使用 getOwnPropertySymbols

  • 问题内容: 我正在尝试比较两个列表,如果第二个列表中有第一个列表中的任何值,则只打印一条消息。 在此示例中,我要对进行求值,因为两个列表中都包含5。这行不通,而且我不确定比较这两个列表的最简单方法。 问题答案: 您可以用很多方法解决。一个很容易理解的方法就是只使用一个循环。 一个更紧凑的方法是使用和: 更好的是,可以将其替换为: 您还可以使用集合:

  • 有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。