如果设置了两个变量中的任何一个,测试最简洁的方法是什么?

时间:2011-11-11 15:44:34

标签: php

我正在做的是,如果我在$_POST$_SESSION中没有ID,那么重定向。优先考虑$_POST。所以我有这个:

$bool = 0;
if (isset($_POST['id'])) {
    $bool = 1;
} elseif (isset($_SESSION['id'])) {
    $bool = 1;
}
if (!$bool) {
    ...//redirect
}

有没有更快的方法来写这个,APART只是删除大括号?

5 个答案:

答案 0 :(得分:3)

if(!( isset($_POST['id']) || isset($_SESSION['id']) ))
    redirect();

(不确定我是否理解$_POST的内容是偏好)。

答案 1 :(得分:2)

你可以这样做:

$has_id = isset($_POST['id']) || isset($_SESSION['id']);

if (!$has_id) {
    // redirect
}

(我建议您为变量提供比$bool更具描述性的名称。)

虽然如果你没有将变量用于其他任何事情,你可以这样做:

if (!isset($_POST['id']) && !isset($_SESSION['id'])) {
    // redirect
}

答案 2 :(得分:0)

if (isset($_POST['id']) || isset($_SESSION['id'])) {
  $bool = 1;
}

答案 3 :(得分:0)

这样就可以了,简单

$bool = (isset($_POST['id']) || isset($_SESSION['id'])) ? 1 : 0; // if isset, 1 ($bool == 1?header(Location: www.whatever.com):null;

答案 4 :(得分:0)

使用条件运算符,您可以在一行语句中实现此目的

实施例

c = (a == b) ? d : e;