2016-10-18 15 views
-1

私は両方の仕事の罰金new self()$thisをテストするが、私は知りたい:プライベート関数でCodeIgniterの/ PHPのエラー未定義プロパティ

は、差分状況で使用しているとき、それは後で私に問題が発生します、それらの間のどのような違い?プライベート関数で変数を取得する方法を

Sencond load_user_record($rows)

私はエラー未定義プロパティが

を助けてくださいました
private function load_user_record($rows) 
{ 
    $this->user_id = $rows->id; 
    $this->hashedPassword = $rows->user_pwd; 
} 

private function find_user_record($user_name) 
{ 
    $this->db->where('user_name',$user_name); 

    $query = $this->db->get('tbl_user'); 

    $result = $query->result(); 

    if($query->num_rows() > 0) 
    { 
     foreach($result as $rows): 

/********** ***************どのような違い******************************/

 /* 
     * $item = new self(); 
     * $item->load_user_record($rows); 
     * $user_result[] = $item; 
     */ 
      $this->load_user_record($rows); 

      $user_result[] = $this; 

/*************************ここで終わり****************** ************/

 endforeach; 

     return $user_result; 
    } 
    return FALSE; 
} 

public function check_user_exist($user_name, $password) 
{ 
    $find_user = $this->find_user_record($user_name); 

    if($find_user !== FALSE) 
    { 

/********************* HEREエラー未定義プロパティ**** *****************/

  foreach($find_user as $user): 

      /* $user_id = $user->user_id; 
      * $hashed_password = $user->hashed_password; 
      * using this 2 variable above work 
      */ 

       $this->load_user_record($user); 
      // using this load_user_record not work 

      endforeach; 

/************************ *エンドHERE ******************************/

 if(password_verify($password, $hashedPassword)) { 
      if (password_needs_rehash($hashedPassword, PASSWORD_DEFAULT)) { 
       $time = date("Y-m-d H:i:s"); 
       $newHashedPassword = password_hash($password, PASSWORD_DEFAULT); 

       $this->db->where('id',$user_id) 
         ->set(array(
          'user_pwd' => $newHashedPassword, 
          'last_login' => $time 
         )); 
       if(!$this->db->update('tbl_user')) 
        return FALSE; 
      } 
      return TRUE; 
     } 
     return FALSE; 
    } 
    return FALSE; 
} 

エラーが起こる

A PHPエラーが

重大度遭遇した

:未定義のプロパティ:

メッセージに注意してくださいログインする:: $ ID

ファイル名:/ Model.php

コア

行番号: 77

バックトレース:

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Projectアプリケーション\モデル\ Login_model.php ライン\バックエンド\:10機能:__get

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Projectアプリケーション\モデル\ \バックエンド\ Login_model.php ライン:49機能:load_user_record

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Project \アプリケーション\コントローラ\バックエンド\ Login.php ライン:27機能:check_user_exist

ファイル: C:\ Wamp \ www \ CodeIgniter_Project \ index。PHPのライン:316機能: のrequire_once


A PHPエラーが重大

を発生しました:未定義のプロパティ::ログイン:: $ user_pwd

ファイル名

メッセージに注目してください:core/Model.php

行番号:77

バックトレース:

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Projectアプリケーション\モデル\ \ Login_model.php ライン\バックエンド:11機能:__get

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Project \アプリケーション\モデル\バックエンド\ Login_model.php ライン:49機能:load_user_record

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Project \アプリケーション\コントローラ\バックエンドの\ Login.php ライン:27機能:check_user_exist

ファイル:C:\ WAMP \ WWW \ CodeIgniter_Project \ラインのindex.php:316機能: のrequire_once


A PHPのエラーが発生しました

重大度:通知

メッセージ:未定義の変数:hashedPassword

ファイル名:バックエンド/ Login_model.php

行番号:53

バックトレース:

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Project \アプリケーション\モデル\ Login_model.php \バックエンドライン:53機能:_error_handler

ファイル: C:\ WAMP \ WWW \ CodeIgniter_Project \アプリケーション\コントローラ\バックエンド\ Login.php ライン:27機能:check_user_exist

ファイル:C:\ WAMP \ WWW \ CodeIgniter_Project \ラインのindex.php:316機能: のrequire_once

と私のコードは、OOPで右ですか?私がOOPで間違っていれば私に気にしないでください。

答えて

0

ループ内で同じ変数$find_userを使用しました。私はこれへの変更が、それでも同じエラー\t \t \t \t foreachの($ユーザとしての$ find_user)持って

foreach($find_user as $user): 

     $this->load_user_record($user); 

endforeach; 
+0

:にコードを変更 \t \t \t \t \tます$ this-> load_user_record($ユーザ)。 \t \t \t \t \t endforeach; – Reaksmey

関連する問題