【问题标题】:Not displaying values from an array不显示数组中的值
【发布时间】:2011-11-15 03:46:54
【问题描述】:

我有一个包含此代码的表单,因此我可以在检查类中的字段时回显错误:

<?php if( isset($_POST['send'])){     
        $new_user = new Register();
        $new_user->check_required_fields($_POST);
        $new_user->display_errors();
    } 

?>

班级是:

<?php
    class Register extends Database
    {
        public $fname;
        public $lname;
        public $uname;
        public $email;
        public $pass1;
        public $pass2;
        public $year;
        public $month;
        public $day;
        public $required_array;
        public $error;
        public $errors = array();

        public function check_required_fields($required_array)
        {
             if(in_array('', $required_array)) {
                 $errors[] = "One or more fields are missing";
                 //var_dump($errors);
             }
             else
             { 
                 $errors[] = "All fields are ok";
                 $this->fname = $required_array['fname'];
                 $this->lname = $required_array['lname'];
                 $this->uname = $required_array['lname'];
                 $this->email = $required_array['email'];
                 $this->pass1 = $required_array['pass1'];
                 $this->pass2 = $required_array['pass2'];
                 $this->year = $required_array['year'];
                 $this->month = $required_array['month'];
                 $this->day = $required_array['day'];
             }

         }


         public function display_errors ($errors)
         {
             foreach ($errors as $error){
                 echo $error;
             }

         }

由于某种原因,它不会显示 $errors 数组,我不知道为什么?如果有任何帮助,我将不胜感激,谢谢。

【问题讨论】:

    标签: php arrays forms oop foreach


    【解决方案1】:

    尝试使用

    $this->errors
    

    在 check_required_fields 和 display_errors 中。

    【讨论】:

    • 那个,然后在display_errors参数中摆脱$errorspublic function display_errors()
    【解决方案2】:
     public function display_errors ($errors)
     {
         foreach($errors as $error){
                echo $error;
            }
    
     }
    

    你在foreach语句中使用的“$errors”是函数display_errors的参数列表中的那个,当你调用这个函数时,你没有给任何参数,所以这个变量是空的

    你应该在 foreach 语句中使用 $this->errors

    【讨论】:

    • @Josh 乍一看,我以为这些是 C 指针。令人毛骨悚然。
    • @Stanislav 我想它会指向指针,但是右侧会做什么?
    • bug 已修复,抱歉这是我的第一篇文章 :)
    • @Josh 它会做可怕的事情 ;-) (没什么,只是编译错误。)
    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2018-01-24
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    相关资源
    最近更新 更多