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