PHP如果($ _POST)烦恼

tey*_*non 2 php post

我发现自己现在正在研究很多其他人的代码.我if (isset($_POST))在一些代码中注意到并确保修复它.(它总会评估true).然后我开始看到这个:

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

经过深思熟虑后,它让我很烦,但似乎仍然有效.有没有人看到使用它检查表单是否已提交有任何问题?如果$_POST数组为空,则其计算结果为false.这可能不起作用的任何特殊情况?

Mar*_*c B 6

这是一个不可靠的测试 - 它假定至少会提交一个表单元素.完全有可能在没有提交数据的情况下执行POST,这会使if ($_POST)评估为false,但在实际执行POST时会出现meta-false.

适当的100%可靠测试是

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