PHP 多个 Isset 声明
PHP multiple Isset declaration
我正在为 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 用于 1 个变量。
虽然 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'] : '';
第一种说法是对的。
但是第二个第二个逗号有错误。
如果你看一下三元的构建方式:
$val = my_test?result_if_true:result_if_false;
你可以做 isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] )
因为它会 return 一个布尔值。
但不写:$_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']
有第二个参数。因为三元不期望这个逗号。
如果您想了解更多信息,我找到了这篇文章
https://davidwalsh.name/php-shorthand-if-else-ternary-operators
您正在为一个变量分配 2 个值,这不起作用,您将不得不使用一个数组。
而且 isset() 也不是检查用户是否向表单输入值的方法,因为如果用户提交空白表单,那么 isset($_POST['smth'])
将 return 为真,因为索引存在于超全局 $_POST
中,其值设置为空字符串。使用 empty()
和一个数组来存储 2 个值。
我正在为 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 用于 1 个变量。
虽然 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'] : '';
第一种说法是对的。 但是第二个第二个逗号有错误。
如果你看一下三元的构建方式:
$val = my_test?result_if_true:result_if_false;
你可以做 isset( $_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r'] )
因为它会 return 一个布尔值。
但不写:$_POST['template-contactform-guestname1'], $_POST['template-contactform-guestname1r']
有第二个参数。因为三元不期望这个逗号。
如果您想了解更多信息,我找到了这篇文章 https://davidwalsh.name/php-shorthand-if-else-ternary-operators
您正在为一个变量分配 2 个值,这不起作用,您将不得不使用一个数组。
而且 isset() 也不是检查用户是否向表单输入值的方法,因为如果用户提交空白表单,那么 isset($_POST['smth'])
将 return 为真,因为索引存在于超全局 $_POST
中,其值设置为空字符串。使用 empty()
和一个数组来存储 2 个值。