缩短了php if else阻止

时间:2011-09-08 15:08:20

标签: php

这是什么短路if else块。我之前在某个地方看到它但却无法记住它。

if (isset($_POST['value')){
 $value = $_POST['value'];
} elseif (isset($_GET['value'])){
 $value = $_GET['value'];
} else {
 $value = '';
}

2 个答案:

答案 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'] : '';