我一直试图让这个工作,但我一直在解析错误:
if (isset($_POST['submit'])) {
if ( isset($_POST['agree']) == false ||
isset($_POST['name'] == false ||
isset($_POST['email'] == false ||
isset($_POST['title'] == false ||
isset($_POST['program'] == false ||
isset($_POST['course'] == false ||
isset($_POST['file'] == false ||) {
echo ' <font color="red"> Please complete all required fields </font><br><br> ';
}
}
Run Code Online (Sandbox Code Playgroud)
在PHP中可以做这样的事吗?这是为了让我的代码更具可读性.
dec*_*eze 12
是的,这是完全可能的,但你有一个最后的尾随||
没有下面的表达式,你错过了一堆结束)
,这给你解析错误.
此外,您可以将其缩写为
if (!isset($_POST['agree'], $_POST['name'], ...))
Run Code Online (Sandbox Code Playgroud)
要么
if (array_diff(array('agree', 'name', ...), array_keys($_POST)))
Run Code Online (Sandbox Code Playgroud)
请注意,尽管所有这些可能都没有测试您要测试的内容.如果您有表单,则将设置所有这些字段.除非用户主动操作表单,否则将使用值""
(空字符串)提交所有字段,这将isset
返回true
.您正在寻找empty
或更多的定制测试.
嗯,如果你更正了括号并省略了最后一个||
,这是有效的PHP代码:
if (isset($_POST['submit'])) {
if (!isset($_POST['agree']) ||
!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['title']) ||
!isset($_POST['program']) ||
!isset($_POST['course']) ||
!isset($_POST['file'])
) {
echo '<font color="red">Please complete all required fields</font><br>';
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,该<font>
元素已被弃用,而是使用CSS.