モデルからの戻り値を次のように保存します$result
。
$result = $this->absensi_m->absensi();
関数で返すものに基づいてabsensi()
、の値は$result
次のいずれかになります。
- 間違い
- 'sudah absen' (文字列)
- 1 (成功を示す)
$result
次に、使用して値を確認しようとすると、 1echo $result;
が返されます
$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ですが、2 番目の 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;
}
ANSWER : たくさんのコメントや会話で混乱するかもしれないので、ここでお答えします。
var_dump()
andを使用して何が起こっているのかを理解しましたecho
(以下の両方の回答に感謝します):
$result = $this->absensi_m->absensi();
var_dump($result);
echo $result;
は1をvar_dump()
返します。これは、実際の値が TRUE(bool) であるのに、値が 1(integer) であると考えるために、この問題が発生したことを意味します。bool(true)
echo
$result
結論は次のとおりです。変数を TRUE(bool) 値でエコーすると 1(整数) になるため、 のvar_dump()
代わりに を使用しecho
ます。