Проверьте, установлен ли $ _POST с помощью самоопределяемой функции? - PullRequest
1 голос
/ 08 октября 2011

Я работаю над функцией проверки, установлен ли $ _POST или нет.

Отлично работает следующее:

if (isset($_POST['einfo'])) {
    $einfo = $_POST['einfo'];
} else {  $einfo = NULL; }

echo $ einfo;

И вот эту функцию я пытаюсь сделать:

  function  ifset($check) {
       if (isset($_POST['$check'])) {
     $check = $_POST['$check'];
    } else {  $check = NULL; }
      return $check;
}

$einfo = ifset('einfo');

echo $einfo; 

Но я не получаю вывод.

Ответы [ 5 ]

5 голосов
/ 08 октября 2011

Вы должны использовать двойные кавычки:

function ifset($check)
{
  if (isset($_POST["$check"]))
  {
    $check = $_POST["$check"];
  }
  else
  {
    $check = NULL;
  }
  return $check;
}

Но на самом деле вы можете их опустить.

1 голос
/ 08 октября 2011

Если результат равен NULL, при выполнении эха он будет «приведен» как пустая строка, и вы ничего не увидите.

Попробуйте использовать var_dump вместо echo.

И вам не нужно использовать двойные кавычки, чтобы позволить php интерпретировать переменные.

0 голосов
/ 08 октября 2011

Это можно сделать даже с меньшим количеством кода:

function ifset($check) {
    if (isset($_POST[$check])) {
        return $_POST[$check];
    }
    return NULL;
}

И в зависимости от того, с какими значениями вы работаете и используете PHP 5.3+, вы можете использовать:

function ifset($check) {
    return $_POST[$check] ?: NULL; // ternary operator
}
0 голосов
/ 08 октября 2011

Вам нужно прочитать руководство по PHP!

$_POST['$check'] -> string '$check' is as you write
$_POST["$check"] -> string "$check" is a string that contain the $check variable
$_POST[$check] -> equivalent to previous


$check = 'some test';
echo "$check"; // outputs -some test-
echo $check; // outputs -some test-
echo '$check'; // outputs $check

надеюсь, это поможет

0 голосов
/ 08 октября 2011

NULL означает пустой, поэтому вы ничего не видите.Если вы хотите что-то увидеть, попробуйте это:

function ifset($check) {
 if (isset($_POST["$check"])) { 
 $check = $_POST["$check"]; 
 } else { 
 $check = "Empty";
 } 
return $check;
}
...