что такое shorted if else block для этого. Я видел его где-то раньше, но не могу его запомнить.
if (isset($_POST['value')){ $value = $_POST['value']; } elseif (isset($_GET['value'])){ $value = $_GET['value']; } else { $value = ''; }
Вы имеете в виду использование глобального массива $ _REQUEST вместо проверки как $ _POST, так и $ _GET? Если это так, это должно быть:
if(isset($_REQUEST['value'])) { $value = $_REQUEST['value']; }else $value = '';
Или тройная форма:
$value = isset($_REQUEST['value']) ? $_REQUEST['value'] : '';
$value = filter_input(FILTER_POST, 'value') ?: filter_input(FILTER_GET, 'value');
Или, если вам нужно получить несколько переменных, сделайте следующее:
$input = $_POST + $_GET + $defaults; $value = $input['value'];
(Оператор +
не переопределяет существующие ключи в левом массиве; в этом случае он работает как array_merge($defaults, $_GET, $_POST)
.)