0

我想使用 $_REQUEST,但如果它来自 cookie,我不想要该值。做这个的最好方式是什么?这就是我目前的做法。谢谢

$value=isset($_GET['name'])?$_GET['name']:(isset($_POST['name'])?$_POST['name']:NULL);
4

2 回答 2

1

只需创建一个为您执行此逻辑的函数:

function fromCookielessRequest($key) {
    if (isset($_GET[$key])) {
        return $_GET[$key];
    }
    if (isset($_POST[$key])) {
        return $_POST[$key];
    }
    return null;
}

$name     = fromCookielessRequest('name');
$password = fromCookielessRequest('password');
于 2014-01-31T14:42:22.170 回答
1

我想使用 $_REQUEST,但如果它来自 cookie,我不想要该值。

恐怕这是两个相互排斥的陈述。根据PHP 文档$_REQUEST是:

默认情况下包含 $_GET、$_POST 和 $_COOKIE 内容的关联数组。

如果您只想使用$_GET并且明确不想使用$_POST,那么您将不得不单独使用它们。$_COOKIE

一般来说,抽象基础设施依赖项是一个好主意,因此您可以创建一个函数(或者,更好的是,一个对象)来获取您正在寻找的值。也许像这样简单:

function getRequestValue($name) {
    if (isset($_GET[$name])) {
        return $_GET[$name];
    }
    if (isset($_POST[$name])) {
        return $_POST[$name];
    }
    // throw an error?  return a default value or null?
}
于 2014-01-31T14:44:27.023 回答