为 if 语句提供多个参数的最佳方法是什么?
What is the best way to supply many arguments to an if statement?
我已经创建了一个包含多个用户输入的表单,但是在提交之前需要检查每个单独的输入是否不为空,这是一项繁琐的任务。有没有更快的方法(例如使用数组)列出 if 语句的所有参数?
目前我的代码看起来像这样,但如果可能的话,我希望它在未来更有效率,就像我要添加更多输入一样。
<form action="sign-up.php" method="post" autocomplete="off" >
Name:<input type="text" name="name" />
Username:<<input type="text" name="username" /><br />
Password:<input type="password" name="password1" /><br />
Re-type Password:<input type="password" name="password2" /><br />
Email:<input type="text" name="email" />
Address:<input type="text" name="address" />
Post Code:<input type="text" name="postcode" />
City:<input type="text" name="city" />
<input class="submit" type="submit" value="sign up" />
</form>
<?php
if (!empty($_POST['name'])
&& !empty($_POST['username'])
&& !empty($_POST['password1'])
&& !empty($_POST['password2'])
&& !empty($_POST['email'])
&& !empty($_POST['address'])
&& !empty($_POST['postcode'])
&& !empty($_POST['city']) )
{
echo "information has been submitted";
}
else {
echo "please fill in all fields!"
}
?>
有什么建议欢迎评论。
所以这将做的是遍历 $_POST 值并检查它们是否为空。如果发现一个为空,它会将 $hasErrorOccurred
设置为 true。下面的if statement
判断输入校验是否成功
$hasErrorOccurred = false;
foreach ($_POST as $key => $value) {
if (empty($_POST[$key])) {
$hasErrorOccurred = true;
break;
}
}
if ($hasErrorOccurred) {
// Your error code here.
} else {
// Your successful code here.
}
阅读material:
如果你想为每个字段输入分配变量,我就是这样做的。
foreach ($_POST as $key => $value) {
$$key = $_POST[$key]; //assigns input name to variable with the same name.
}
if(!empty($$key)) {
//code if all fields are not empty
}
else {
echo "Please fill in all fields";
}
以下是我尝试描述对 Script47 答案的评论的方式,以便我可以更好地阐明我的观点:
$requiredFields = ['name','username','password1','password2'];
foreach ($requiredFields as $field) {
if (!array_key_exists($field, $_POST) || empty($_POST[$field])) {
displayMissingFieldAlert($field);
}
}
// do the submit etc.
...
如果某个字段因某种原因被遗忘、拼写错误或遗漏在提交中,您可以通过这种方式发现。
我已经创建了一个包含多个用户输入的表单,但是在提交之前需要检查每个单独的输入是否不为空,这是一项繁琐的任务。有没有更快的方法(例如使用数组)列出 if 语句的所有参数?
目前我的代码看起来像这样,但如果可能的话,我希望它在未来更有效率,就像我要添加更多输入一样。
<form action="sign-up.php" method="post" autocomplete="off" >
Name:<input type="text" name="name" />
Username:<<input type="text" name="username" /><br />
Password:<input type="password" name="password1" /><br />
Re-type Password:<input type="password" name="password2" /><br />
Email:<input type="text" name="email" />
Address:<input type="text" name="address" />
Post Code:<input type="text" name="postcode" />
City:<input type="text" name="city" />
<input class="submit" type="submit" value="sign up" />
</form>
<?php
if (!empty($_POST['name'])
&& !empty($_POST['username'])
&& !empty($_POST['password1'])
&& !empty($_POST['password2'])
&& !empty($_POST['email'])
&& !empty($_POST['address'])
&& !empty($_POST['postcode'])
&& !empty($_POST['city']) )
{
echo "information has been submitted";
}
else {
echo "please fill in all fields!"
}
?>
有什么建议欢迎评论。
所以这将做的是遍历 $_POST 值并检查它们是否为空。如果发现一个为空,它会将 $hasErrorOccurred
设置为 true。下面的if statement
判断输入校验是否成功
$hasErrorOccurred = false;
foreach ($_POST as $key => $value) {
if (empty($_POST[$key])) {
$hasErrorOccurred = true;
break;
}
}
if ($hasErrorOccurred) {
// Your error code here.
} else {
// Your successful code here.
}
阅读material:
如果你想为每个字段输入分配变量,我就是这样做的。
foreach ($_POST as $key => $value) {
$$key = $_POST[$key]; //assigns input name to variable with the same name.
}
if(!empty($$key)) {
//code if all fields are not empty
}
else {
echo "Please fill in all fields";
}
以下是我尝试描述对 Script47 答案的评论的方式,以便我可以更好地阐明我的观点:
$requiredFields = ['name','username','password1','password2'];
foreach ($requiredFields as $field) {
if (!array_key_exists($field, $_POST) || empty($_POST[$field])) {
displayMissingFieldAlert($field);
}
}
// do the submit etc.
...
如果某个字段因某种原因被遗忘、拼写错误或遗漏在提交中,您可以通过这种方式发现。