我测试new self()
,$this
两者都运行正常,但我想知道:
它们之间有什么区别会在以后引起问题 在不同的情况下使用?
如何在私有函数load_user_record($rows)
我收到错误 undefine property 请帮助
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;
/ *************************在此结束******************* *********** /
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;
}
错误发生
遇到PHP错误
严重性:注意
消息:未定义属性:Login :: $ id
文件名:core / 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:\瓦帕\ WWW \ CodeIgniter_Project \应用\控制器\后端\ login.php中 行:27功能:check_user_exist
文件:C:\ wamp \ www \ CodeIgniter_Project \ index.php行:316功能: require_once
遇到PHP错误
严重性:注意
消息:未定义属性:Login :: $ 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:\瓦帕\ WWW \ CodeIgniter_Project \应用\控制器\后端\ login.php中 行:27功能:check_user_exist
文件:C:\ wamp \ www \ CodeIgniter_Project \ index.php行:316功能: require_once
遇到PHP错误
严重性:注意
消息:未定义的变量:hashedPassword
文件名:backend / Login_model.php
行号:53
回溯:
文件: C:\ WAMP \ WWW \ CodeIgniter_Project \程序\型号\后端\ Login_model.php 行:53功能:_error_handler
文件: C:\瓦帕\ WWW \ CodeIgniter_Project \应用\控制器\后端\ login.php中 行:27功能:check_user_exist
文件:C:\ wamp \ www \ CodeIgniter_Project \ index.php行:316功能: require_once
我的代码是否在OOP中?如果我在OOP中出错了,请不要介意我,这是我在OOP中的第一个代码。
答案 0 :(得分:0)
在循环中,您使用了相同的变量$find_user
。将代码更改为:
foreach($find_user as $user):
$this->load_user_record($user);
endforeach;