我正在研究一个函数来检查是否设置了$ _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;
但我没有输出。
答案 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
}