这是什么短路if else块。我之前在某个地方看到它但却无法记住它。
if (isset($_POST['value')){
$value = $_POST['value'];
} elseif (isset($_GET['value'])){
$value = $_GET['value'];
} else {
$value = '';
}
答案 0 :(得分:3)
$value = filter_input(FILTER_POST, 'value') ?: filter_input(FILTER_GET, 'value');
或者,如果您必须获得多个变量,请执行以下操作:
$input = $_POST + $_GET + $defaults;
$value = $input['value'];
(+
operator不会覆盖左侧数组中的现有键;在这种情况下,它的工作方式类似于array_merge($defaults, $_GET, $_POST)
。)
答案 1 :(得分:0)
您是指使用$ _REQUEST全局数组而不是同时检查$ _POST和$ _GET吗?如果是这样,那应该是:
if(isset($_REQUEST['value']))
{
$value = $_REQUEST['value'];
}else
$value = '';
或三元形式:
$value = isset($_REQUEST['value']) ? $_REQUEST['value'] : '';