如何检测是否设置了$ _POST?

Lis*_*sky 24 php post

我想知道如何检测是否设置了$ _POST.

现在我发现它像这样:

if(isset($_POST['value']))
Run Code Online (Sandbox Code Playgroud)

但我不是在看是否已经设定了价值.基本上,任何POST都可以.

if(isset($_POST))
Run Code Online (Sandbox Code Playgroud)

我不确定PHP如何处理这个问题.Perhabs isset($ _ POST)总是返回true,因为它是PHP全局?

基本上,我该怎么做?

hsz*_*hsz 59

试试:

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {}
Run Code Online (Sandbox Code Playgroud)

检查您的脚本是否已发布.

如果传递了其他数据,$_POST则不会为空,否则将为空.

您可以使用empty方法检查它是否包含数据.

if ( !empty($_POST) ) {}
Run Code Online (Sandbox Code Playgroud)

  • 因为`$ _POST`总是存在`if($ _POST)`会做得很好,不需要`empty`. (5认同)
  • @LisaMiskovsky如果你想检查是否发布了脚本,请使用`REQUEST_METHOD` - 这是一个很好的做法.如果您另外想检查是否有任何数据发布,请检查`$ _POST`变量. (2认同)

Sal*_*n A 12

$_POST是一个数组.你可以查看:

count($_POST)
Run Code Online (Sandbox Code Playgroud)

如果它大于零,则意味着发布了一些值.