我测试new self()
, $this
都工作良好,但我想知道:
它们之间的区别会在以后给我带来问题吗在不同的情况下使用?
私函数load_user_record($rows)
中如何获取变量
I got error undefine property please help
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)
{
/********************* 这里的错误未赋值属性 *********************/
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错误
严重性:注意
Message: Undefined property: Login::$id
文件名:核心/Model.php
行号:77
回溯:
文件:C: ' wamp ' www ' CodeIgniter_Project '程序' '后端' Login_model.php模型函数:__get
文件:C: ' wamp ' www ' CodeIgniter_Project '程序' '后端' Login_model.php模型功能:load_user_record
文件:C: ' wamp ' www ' CodeIgniter_Project '程序'控制器'端' login行:27功能:check_user_exist
File: C:'wamp'www'CodeIgniter_Project'index.php Line: 316require_once
遇到PHP错误
严重性:注意
Message: Undefined property: Login::$user_pwd
文件名:核心/Model.php
行号:77
回溯:
文件:C: ' wamp ' www ' CodeIgniter_Project '程序' '后端' Login_model.php模型Function: __get
文件:C: ' wamp ' www ' CodeIgniter_Project '程序' '后端' Login_model.php模型功能:load_user_record
文件:C: ' wamp ' www ' CodeIgniter_Project '程序'控制器'端' login行:27功能:check_user_exist
File: C:'wamp'www'CodeIgniter_Project'index.php Line: 316require_once
遇到PHP错误
严重性:注意
消息:Undefined variable: hashhedpassword
文件名:后端/Login_model.php
行号:53
回溯:
文件:C: ' wamp ' www ' CodeIgniter_Project '程序' '后端' Login_model.php模型函数:_error_handler
文件:C: ' wamp ' www ' CodeIgniter_Project '程序'控制器'端' login行:27功能:check_user_exist
File: C:'wamp'www'CodeIgniter_Project'index.php Line: 316require_once
和我的代码是正确的OOP吗?如果我在OOP中犯了错误,请不要介意,这是我在OOP中的第一个代码。
在循环中使用了相同的变量$find_user
。将代码改为:
foreach($find_user as $user):
$this->load_user_record($user);
endforeach;