2011-05-07 91 views
8

可能重复:
Check if $_POST exists

我想,当且仅当被填充的$ _POST变种运行的东西。我可以做if(empty($_POST[...])) { ... }吗?或者我应该以另一种方式去做?

+0

你是什么意思的 “填充” 吗?如果'$ _POST ['key']'包含一个空字符串,它是否被填充? – GodsBoss 2011-05-07 19:33:03

回答

21

我做if(isset($_POST['key'])) { ... }

+0

如果$ _ POST [“关键”]是存在没有它返回true,这并不总是你想要的值。 – 2017-06-14 16:24:48

1

您可以检查$_SERVER['REQUEST_METHOD']羯羊它是POST或别的东西。请参阅$_SERVER

哎呀,我完全误解了你的问题。您是否想要测试特定条目是否在$_POST?然后使用array_key_exists($key, $_POST)

+0

适合在循环内使用! :) – 2018-03-03 18:42:39

3

没有,空()是没有这样做的正确方法。你必须使用isset()。

为什么?因为许多事情被认为是空的,你可能不想错过!

下面的事情被认为是空的:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 

See the manual!

+0

只有串类型可以是存在于输入阵列。 – mario 2011-05-07 19:40:03