检查$ _POST是否设置了自定义函数?

时间:2011-10-08 10:34:44

标签: php function post isset

我正在研究一个函数来检查是否设置了$ _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 个答案:

答案 0 :(得分:5)

你必须使用双引号:

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

但实际上你可以省略它们。

答案 1 :(得分:1)

如果结果为NULL,当你执行回显时,它将被“转换”为空字符串,因此你什么也看不见。

尝试使用var_dump代替echo

你不必使用双引号让php解释变种。

答案 2 :(得分:0)

NULL表示空,所以你什么也看不见。如果你想看到的东西,试试这个:

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

答案 3 :(得分:0)

你需要阅读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

希望这会有所帮助

答案 4 :(得分:0)

可以用更少的代码完成:

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

根据您处理的价值并使用PHP 5.3+,您可以使用:

function ifset($check) {
    return $_POST[$check] ?: NULL; // ternary operator
}