我将模型的返回值存储在$result
:
$result = $this->absensi_m->absensi();
根据我在absensi()
函数中返回的内容, 的值$result
将是以下之一:
- 错误的
- 'sudah absen' (字符串)
- 1(表示成功)
然后我尝试查看$result
使用的值echo $result;
,它返回1
但是,当我尝试$result
用于某些验证时,我遇到了一个奇怪的错误:
if($result == FALSE)
$data['result'] = 'Anda Belum Terdaftar, Silahkan Daftar Dahulu :D';
else if($result == 'sudah absen')
$data['result'] = 'Anda Sudah Absen Hari Ini :D';
else
$data['result'] = 'Selamat Datang, '.$this->input->post('txtNama').'! ^^';
尽管 的值为 $result
1 ,但第二个 if( $result == 'sudah absen'
) 始终返回TRUE。
这是怎么回事?谢谢:D
这是absensi()
我模型中的功能:
public function absensi() {
$nama = $this->input->post('txtNama');
$tanggal = date('Y-m-d', now());
$this->db->select('umat_id');
$terdaftar = $this->db->get_where('msumat', array('nama' => $nama));
$row = $terdaftar->row_array();
$sudah_absen = $this->db->get_where('msabsensi', array('umat_id' => $row['umat_id'], 'absensi_tanggal' => $tanggal));
if($terdaftar->num_rows() != 0 && $sudah_absen->num_rows() == 0)
{
$data_umat = array(
'umat_id' => $row['umat_id'],
'status' => 'H',
'absensi_tanggal' => date('Y-m-d')
);
return $this->db->insert('msabsensi', $data_umat);
}
else if($sudah_absen->num_rows() != 0)
return 'sudah absen';
else
return FALSE;
}
回答: 我会在这里回答,因为您可能会对很多评论/对话感到困惑。
我通过使用var_dump()
and意识到发生了什么echo
(感谢下面的两个答案):
$result = $this->absensi_m->absensi();
var_dump($result);
echo $result;
var_dump()
返回bool(true)
时返回 1。这echo
意味着发生此问题是因为我认为该$result
值为 1(整数),而实际值为 TRUE(布尔)。
结论是:使用 TRUE(bool) 值回显变量将导致 1(integer),因此请使用var_dump()
代替echo
。