我有一个表单,它使用method="POST"
提交一些字段
如果在处理请求的脚本中不满足条件,我应该使用 UNSET
或类似的东西销毁POST
数据,还是应该将其保留在那里。
这些数据会怎样?PHP会破坏它吗?
例:
$a = 1;
if(isset($_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['e'])) {
if($a == 1) {
echo 'Success'; // Do something with the data
} else {
// Should the above `POST` data be left as is, or should it be UNSET or...
}
} else {
echo 'Error';
}
当你请求一个页面时,php 会处理从第 1 行到末尾的 php 脚本。在那之后,所有的变量、对象和其他一切都消失了,就像它不存在一样。
我应该使用 UNSET 或类似的东西销毁 POST 数据吗
不,您不必这样做,因为当 php 到达页面末尾时,它神奇地消失了,就好像它从未存在过一样。
$_POST
就像任何其他变量一样。它没有什么特别的,除了您不必手动创建它。它只是在脚本结束时自动销毁,就像其他变量一样
唯一保存 的是
-
session data
(通常在服务器上的文件中)对象 -
cookies
(作为浏览器中的文件)
为什么要
取消设置 *$_POST* 或 *$_GET*?这不会给你带来任何好处。
我建议您将您感兴趣的 $_POST/$_GET 数组索引复制到另一个变量中,并在该新变量中处理它们,或者如果不需要,则直接将该新变量设置为 null。
此外,在您的代码中,如果您$a == 1
条件为 true,您只需要检查是否设置了 $_POST 索引,否则您只会花费处理时间和内存。
不需要销毁 $_GET 或 $_POST 全局变量。当 php 完成执行时,它们将被自动销毁。
你可以保持原样。当您导航到其他页面时,这些($_POST
或$_GET
)数据将不适用于新导航的页面。,因此在这种情况下取消设置是没有意义的。