2016-12-28 5 views
0
function valueFromGetOrPost($parameter) 
{ 
    $shvalue=NULL; 
    if ($_GET[$parameter]) 
    { 
     $shvalue=$_GET[$parameter]; 
    } 
    else if (isset($_POST[$parameter])) 

    { 
     $shvalue=$_POST[$parameter]; 
    } 
    return $shvalue; 

} 

говорят, с помощью filter_inputЕсть ли способ, чтобы упростить эту функцию с помощью сказать filter_input

В принципе код проверки существует ли параметр либо в GET или POST. Затем верните значение параметра.

Я думаю, что это должно быть так часто она должна быть там некоторые встроенные функции уже

+0

Возможно, добавьте тег php? – assylias

+2

проверить $ _REQUEST, который содержит $ _GET и $ _POST вместе (см. Http://php.net/manual/en/reserved.variables.request.php) – Iarwa1n

ответ

0

Использование $_REQUEST (documentation).

Ассоциативный массив, который по умолчанию содержит содержимое $ _GET, $ _POST и $ _COOKIE.

Так что ваш код будет выглядеть следующим образом:

function valueFromGetOrPost($parameter) 
{ 
    $shvalue=NULL; 
    if ($_REQUEST[$parameter]) 
    { 
     $shvalue=$_REQUEST[$parameter]; 
    } 
    return $shvalue; 

} 
+0

Вот что я ищу. Это можно сделать с помощью filter_input –

0

Вы можете использовать быстрый возврат упростить это немного, т.е.

function valueFromGetOrPost($parameter){ 

    $shvalue=NULL; 

    if (isset($_GET[$parameter])){ 
     return $_GET[$parameter]; 
    } else if (isset($_POST[$parameter])){ 
     return $_POST[$parameter]; 
    } 
} 

Или вы можете использовать тройной оператор, так как вы 're возвращать NULL в любом случае, если не установлены ни один из них:

function valueFromGetOrPost($parameter){ 

$shvalue = (isset($_GET[$parameter]) ? $_GET[$parameter] : $_POST[$parameter]); 

return $shvalue; 

} 
0

Вот мое предложение, используя функцию filter_input():

function valueFromGetOrPost($parameter) 
{ 
    $value = ($getValue = filter_input(INPUT_GET, $parameter)) 
     ? $getValue 
     : filter_input(INPUT_POST, $parameter); 

    return ($value) ? $value : NULL; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^