有人可以解释这些if语句的含义吗?

时间:2013-01-05 20:24:04

标签: php

我是初学者,我有两套适用于表格的“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);
?>

1 个答案:

答案 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的教程:

http://www.w3schools.com/php/default.asp