хранить возвращаемое значение из моей модели в $result
:модели возвращаемое значение в CodeIgniter
$result = $this->absensi_m->absensi();
Основываясь на том, что я вернуться в функции absensi()
, значение $result
будет один из них:
- FALSE
- 'sudah Absen' (строка)
- 1 (что указывает на успех)
Тогда я стараюсь, чтобы увидеть значение $result
с помощью echo $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
- , второе, если ($result == 'sudah absen'
) всегда возвращается ИСТИНА.
Что здесь происходит спасибо: 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()
и echo
(Благодаря обоим ответам ниже):
$result = $this->absensi_m->absensi();
var_dump($result);
echo $result;
В var_dump()
возвращает bool(true)
а echo
возвращает 1. Это означает, что эта проблема произошла, потому что я думаю, что значение $result
равно 1 (целое), а действительное значение - TRUE (bool).
Вывод: повторение переменной с значением TRUE (bool) приведет к 1 (целочисленному), поэтому используйте var_dump()
вместо echo
.
@BlazeTama Я был прав с ответом кстати. http://stackoverflow.com/questions/5938221/string-compare-on-a-bool Чтобы убедиться, я задал другой вопрос: http://stackoverflow.com/questions/15462279/php-if-condition-with -boolean и получил downvoted, не понял вопрос был задан ранее. :( –