我想知道如何检测是否设置了$ _POST。
现在我发现它是这样的:
if(isset($_POST['value']))
但我不知道是否已经设定了价值。基本上,任何POST都可以。
if(isset($_POST))
我不确定PHP如何处理这个问题。 Perhabs isset($ _ POST)总是返回true,因为它是PHP全局?
基本上,我该怎么做?
答案 0 :(得分:56)
尝试:
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {}
检查您的脚本是否已发布。
如果传递了其他数据,$_POST
将不会为空,否则将为空。
您可以使用empty
方法检查它是否包含数据。
if ( !empty($_POST) ) {}
答案 1 :(得分:12)
$_POST
是一个数组。你可以查看:
count($_POST)
如果大于零,则意味着发布了一些值。
答案 2 :(得分:3)
一个简单的解决方案可能就是使用
if (!empty($_POST))
答案 3 :(得分:3)
只需使用如下。因为它是super global
所以在检查isset
和empty
时它始终会返回。
<?php
if($_POST)
{
echo "yes";
}
?>
答案 4 :(得分:2)
我知道这个答案已经得到了回答,但这里有一个简单的方法,我在我的一个课程中使用它来确定帖子是否已经设置(也许有人会发现它很有用):
public function isPost($key = null) {
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
return false;
}
if (!empty($key)) {
return isset($_POST[$key]);
}
return true;
}
答案 5 :(得分:-1)
检查$ _POST的最佳方法
<?php
if(isset($_POST['value']) && !empty($_POST['value']))
{
return true;
}
else
{
return false;
}