在单个语句中检索$ _GET属性

时间:2014-08-28 22:17:37

标签: php get

目前,我检查是否使用$_GET设置了$_POSTempty()属性。像这样:

$status = null;

if (!empty($_GET['foo'])) {
    $status = $_GET['foo'];
}

我想有一个更简洁的方法来做同样的事情来构建PHP,就像我现在用empty做的那样,也避免打印出未定义索引的通知。也许是这样的:

$status = something($_GET['foo']);

或者,也许我应该忽略通知并执行:

$status = $_GET['foo'];

4 个答案:

答案 0 :(得分:2)

我不确定问题是什么,因为empty()没有为未定义的变量生成警告,但是如果你想要它在一行中,你可以使用三元表达式:

$status = empty($_GET['foo']) ? null : $_GET['foo'];

答案 1 :(得分:0)

如果你想要GET怎么样:

$status = isset($_GET['foo'])?$_GET['foo']:NULL;

或者如果你想要GET和POST:

$status = isset($_GET['foo'])?$_GET['foo']:(isset($_POST['foo'])?NULL);

答案 2 :(得分:0)

您始终可以检查$ _GET数组中的键是否存在,如果不是,则将该变量设置为null。永远不会抛出一个想法。

$status = array_key_exists('foo', $_GET) ? $_GET['foo'] : null;

答案 3 :(得分:-2)

您可以使用@。

来取消警告
$status = @$_GET['foo'];