PHP $_POST
是一个超级全局变量,可以包含通过 post 方法提交的 HTML 表单数据的键值对。我们将学习不同的方法来检查 $_POST
是否存在并在本文中包含一些数据。这些方法将使用 isset()
、empty()
和空字符串检查。
检查 $_POST
是否存在于 isset()
isset()
函数 是一个 PHP 内置函数,可以检查是否设置了变量,而不是 NULL。此外,它适用于数组和数组键值。PHP $_POST
包含数组键值,因此 isset()
可以处理它。
要检查 $_POST
是否存在,请将其作为值传递给 isset()
函数。同时,你可以检查用户是否提交了特定的表单输入。如果用户提交了一个表单输入,它将在 $_POST
中可用,即使它是空的。
下面的 HTML 为我们提供了一些可以使用的东西。它有一个带有预填充名称字段的表单字段。
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label>First Name</label>
<input type="text" name="first_name" value="DelftStack">
<input type="submit">
</form>
当你单击提交按钮时,以下 PHP 将检查 $_POST
是否存在:
<?php
if (isset($_POST['first_name'])) {
$first_name = $_POST['first_name'];
echo $first_name;
}
?>
输出:
DelftStack
使用 Empty()
函数检查 $_POST
是否存在
你可以使用 empty()
函数 检查 $ _POST
的存在。但是,empty()
函数将在以下情况下返回 true
:
-
当所有
$_POST
值都是空字符串时 - 参数为零
下面的 HTML 和上一个一样,这一次,名称不同:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label>First Name</label>
<input type="text" name="first_name" value="Mathias Jones">
<input type="submit">
</form>
下一个代码块将向你展示如何使用 empty()
函数检查 $_POST
:
<?php
if (!empty($_POST)) {
$first_name = $_POST['first_name'];
echo $first_name;
}
?>
输出:
Mathias Jones
检查 $_POST
是否存在 isset()
函数和空字符串检查
如果 $_POST 的值为空字符串,则 isset()
函数返回 true,但对于 NULL 值,它将返回 false。如果你尝试打印 isset($_POST['x']) = NULL
和 isset($_POST['x']) = ''
的值,在这两种情况下,你都会得到一个空字符串.
因此,你将需要检查空字符串。isset()
和空字符串检查的组合消除了 $_POST
在你处理其数据之前包含空字符串的可能性。
在下一个代码块中,我们有一个 HTML 可供使用:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label>First Name</label>
<input type="text" name="first_name" value="Mertens Johanssen">
<input type="submit">
</form>
检查 $_POST
是否存在:
<?php
if (isset($_POST['first_name']) && $_POST['first_name'] !== "") {
$first_name = $_POST['first_name'];
echo $first_name;
}
?
输出:
Mertens Johanssen
检查 $_POST
是否存在否定运算符
否定运算符 (!) 会将真陈述变为假,将假陈述变为真。因此,你可以使用否定运算符检查 $_POST
是否存在。要检查 $_POST
,请在 if-else 语句中添加否定运算符。
在第一部分,如果 $_POST
为空,你可以停止对其数据的 p 处理。在条件的第二部分,你可以处理数据。
首先,HTML:
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<label>First Name</label>
<input type="text" name="first_name" value="Marcus Alonso">
<input type="submit">
</form>
下一个代码块演示了使用否定运算符检查 $_ POST
是否存在。
<?php
if (!$_POST) {
echo "Post does not exist";
} else {
$first_name = $_POST['first_name'];
echo $first_name;
}
?>
输出:
Marcus Alonso