-2

我是一个初学者,我有两组适用于表单的“if 语句”,它们几乎做同样的事情,但我想了解他们为什么这样做。当我打印错误并提交一个空表单时,第一个 if 语句会回显数组中的每个字段,并在每个字段旁边显示“需要”字样。至于第二个 if 语句,它只是回显“您没有填写所有类别”,如果与第一个 if 语句相呼应的特定字段为空,那么即使一个字段在表单中为空。Like 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);
?>
4

1 回答 1

0

"isset() 如果变量存在则返回真,即使它是空的。empty() 如果变量不存在或如果它们的内容被认为是“空”(空字符串,0,NULL,假,数组)返回真没有元素)。它们真的很不同。我相信空($var)等价于!($var)。

http://www.webhostingtalk.com/archive/index.php/t-373975.html

看到这个问题:isset和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

于 2013-01-05T20:31:46.303 回答