我想检查是否发布了$ _POST ['submit']。
我原来的代码是:
if ($_POST['submit']) { }
但是我有这个代码的PHP通知 - “Undefined index:submit in ...”
所以要删除我必须写的通知:
if (isset($_POST['submit'])) { }
但这没有意义,因为$ _POST数组是全局的,它总是返回true。 另外如果我想在没有PHP通知的情况下检查$ _POST ['submit']是否为0,我必须写这个:
if (isset($_POST['submit']) && $_POST['submit'] != 0) { }
在这个特殊情况下,我更喜欢:
if ($_POST['submit']) {}
但是我在这里得到了PHP通知。
那么哪种方式最合适/被接受?
谢谢
答案 0 :(得分:3)
isset($_POST['submit'])
检查submit
数组中是否设置了$_POST
密钥。它不只是检查$_POST
数组是否存在,因此不是“毫无意义”。如果您想检查值 not falsey (== false
),其中包含0
,而不会触发错误,那就是empty
的用途:< / p>
if (!empty($_POST['submit']))
与
相同if ($_POST['submit'])
但如果该值不存在则不触发通知。
有关详尽的解释,请参阅The Definitive Guide To PHP's isset And empty。
答案 1 :(得分:2)
尝试
if ($_SERVER['REQUEST_METHOD']=='POST')
{
//do
}
答案 2 :(得分:0)
$ _ POST []检查是否提交了变量,而不是表单名称。
if ( isset($_POST['name']) ) {
// work here
}
答案 3 :(得分:0)
根据我的理解,它应该如下:
public class GreaterThanValConverter:IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (int) value > 0;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
如果您确定您的方法肯定是POST。并且您在var x = foo;
if ((x == "val1") || (x == "val2")) {
alert('Hello World');
}
中有数据发布,您可以使用以下代码:
if (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST'){
# if method is post, code goes here.
}
我通常更喜欢$_POST
。
答案 4 :(得分:0)
从PHP版本7开始,有一种称为“空联合运算符”的新方法。这种方法可以节省您的代码时间和空间。
$submit = $_POST['submit'] ?? '';
如果提交键不存在或为NULL,则$submit
变量的值将为空字符串。
此方法不限于$ _POST。它适用于任何变量。例如:
echo $my_message ?? 'No message found';
如果消息未初始化或为NULL,则上面的语句将输出No message found
使用空合并运算符还可以做更多的事情,下面的文档链接。