1

我正在开发一个函数来检查是否设置了 $_POST 。

以下工作正常:

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

回声 $einfo;

这是我正在尝试制作的功能:

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

$einfo = ifset('einfo');

echo $einfo; 

但我没有输出。

4

5 回答 5

5

您必须使用双引号:

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

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

于 2011-10-08T10:38:36.910 回答
1

如果结果为 NULL,则当您执行 echo 时,它将被“强制转换”为空字符串,因此您什么也看不到。

尝试使用var_dump而不是echo.

而且你不必使用双引号让 php 解释变量。

于 2011-10-08T10:38:05.690 回答
0

NULL 表示为空,因此您什么也看不到。如果你想看点什么,试试这个:

function ifset($check) {
 if (isset($_POST["$check"])) { 
 $check = $_POST["$check"]; 
 } else { 
 $check = "Empty";
 } 
return $check;
}
于 2011-10-08T10:40:22.053 回答
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

希望这可以帮助

于 2011-10-08T10:40:29.073 回答
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
}
于 2011-10-08T11:48:25.963 回答