目前,我检查是否使用$_GET
设置了$_POST
或empty()
属性。像这样:
$status = null;
if (!empty($_GET['foo'])) {
$status = $_GET['foo'];
}
我想有一个更简洁的方法来做同样的事情来构建PHP,就像我现在用empty
做的那样,也避免打印出未定义索引的通知。也许是这样的:
$status = something($_GET['foo']);
或者,也许我应该忽略通知并执行:
$status = $_GET['foo'];
答案 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'];