Вы также можете использовать параметр ссылки для метода вашей модели, чтобы вернуть имя пользователя вызывающей стороне. Это позволило бы получить чистое логическое возвращаемое значение.
Модель
function confirmUser($activateCode, &$userFirstName)
{
if($activateCode == '')
return false;
$this->db->select('userID, userFirstName');
$this->db->from('users');
$this->db->where('userActiveCode', $activateCode);
$result = $this->db->get();
if($result->num_rows == 1)
{
$this->db->set('userActive', 1);
$this->db->where('userActiveCode', $activateCode);
$this->db->update('users');
$userFirstName = $result->row()->userFirstName;
return true;
}
else
return false;
}
Caller
$userFirstName = '';
if ($this->user_model->confirmUser($activate_code, $userFirstName))
//userFirstName will be populated
$data['userFirstName'] = $userFirstName;
else
//userFirstName will still be empty
При передаче по ссылке, в отличие от передачи по значению, вы, по сути, передаете указатель (адрес памяти) в область памяти, в которой хранится значение, а не фактическое значение; поэтому, когда вы изменяете значение в методе, параметр, который был передан вызывающей стороной по ссылке, также изменяется. Это потому, что они оба указывают на один и тот же точный адрес памяти.