我是初学者,我有两套适用于表格的“if语句”,他们几乎做同样的事情,但我想理解为什么他们会做他们做的事情。当我打印错误并提交一个空表单时,第一个if语句回显数组中的每个字段,每个字段旁边都有“is requred”字样。至于第二个if语句,它只是回声“你没有填写所有的类别”,如果表格中的一个字段留空,而第一个if语句则回显留空的特定字段。如果你可以一步一步地为我分解每组编码,这将是很棒的。您是否可以推荐一个我可以学习语言的链接?谢谢!
<?php
if(isset($_POST['registrationform'])){
$required_fields = array('first_name', 'last_name', 'email', 'password', 'gender', 'month', 'day', 'year');
foreach ( $required_fields as $key=>$value) {
if (!isset($_POST[$value]) || $_POST[$value]=='') {
$errors[$value] =$key." is required";
}
}
}
print_r($errors);
?>
<?php
if (empty($_POST) === false) {
$required_fields = array('first_name', 'last_name', 'email', 'password', 'sex', 'birthday', 'terms_of_service');
foreach ($_POST as $key=>$value) {
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = 'You didn\'t fill in all of the categories.';
break 1;
}
}
}
print_r($errors);
?>
答案 0 :(得分:0)
“isset()如果变量存在则返回true,即使它是空的。如果变量不存在则返回true或者如果它们的内容被认为是”空“(空字符串,0 ,NULL,false,没有元素的数组)。真的很不一样。我相信空($ var)相当于!($ var)。“
http://www.webhostingtalk.com/archive/index.php/t-373975.html
请参阅此问题:What is the difference between isset and empty?
有关这两项功能的信息:
http://us3.php.net/manual/en/function.empty.php
http://us3.php.net/manual/en/function.isset.php
学习php的教程: