我想知道是否可以在我的表单处理文件中简化这部分代码:
<?php
if(isset($_POST) && isset($_POST['form3_prenom']) && isset($_POST['form3_nom']) && isset($_POST['form3_email']) && isset($_POST['form3_telephone']) && isset($_POST['form3_message'])) {
extract($_POST);
if(!empty($form3_prenom) && !empty($form3_nom) && !empty($form3_email) && !empty($form3_telephone) && !empty($form3_message)) {}
}
?>
始终
设置$_POST
。
isset
可以接受多个参数。
变量后,无需再次检查它们。
if( isset($_POST['form3_prenom'], $_POST['form3_nom'], $_POST['form3_email'], $_POST['form3_telephone'], $_POST['form3_message'])) {
extract($_POST);
// do stuff
}
是的,像这样:
$expected_fields = array('form3_prenom', 'form3_nom', 'form3_email', 'form3_telephone', 'form3_message');
$error = false;
foreach($expected_fields as $field) {
if(empty($_POST[$field])) $error = true;
}
if($error) {
echo 'A field is empty...';
}
顺便说一句:检查isset
和empty
是没有必要的。引用 php 文档:
如果变量不存在,则不会生成警告。这意味着 empty() 本质上是 !isset($var) ||$var == 假。