PHP多个Isset声明

时间:2017-02-06 09:17:56

标签: php html forms isset

我正在为RSVP创建一个PHP表单,我正在尝试将多个$ _POST声明为1个isset变量,但我的代码中一直出现错误,这就是我正在尝试做的事情:

    $attendance = isset( $_POST['template-contactform-event'] ) ? $_POST['template-contactform-event'] : '';

    $guestname1 = isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] ) ? $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] : '';

所以我的错误发生在第二个声明行$ guestname1我认为它是因为isset之后的第二个昏迷,但我不确定我会如何声明这个?第一行($ attendance)是我想要实现的,但是有两个$ _POST for 1变量。

3 个答案:

答案 0 :(得分:2)

虽然isset()可以采用多个参数,但内联iif()不能。

试试这个,我连接了两个参数。

<?php

$attendance = isset( $_POST['template-contactform-event'] ) ? $_POST['template-contactform-event'] : '';

$guestname1 = isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] ) ? 
                $_POST['template-contactform-guestname1'].' '.$_POST['template-contactform-guestname1r'] : '';

答案 1 :(得分:2)

第一个陈述是对的。 但是第二个逗号有第二个错误。

如果您看一下三元应该构建的方式:

$val = my_test?result_if_true:result_if_false;

你可以isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] ),因为它会返回一个布尔值。

但不写:$_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']有第二个参数。因为三元并不期待这个逗号。

如果您想了解更多信息,我发现了这篇文章 https://davidwalsh.name/php-shorthand-if-else-ternary-operators

答案 2 :(得分:1)

您要为一个变量分配2个值,但这不起作用,您必须使用数组。

并且isset()也不是检查用户是否已向表单输入值的方法,因为如果用户提交空白表单,则isset($_POST['smth'])将返回true,因为索引存在于超级全局$_POST及其值设置为空字符串。请改用empty()和数组来存储2个值。