我在控制器中有这样的代码:
$date = $this->input->post('date');
$shift = $this->input->post('shift');
$exca_id = $this->input->post('exca_id');
$status = $this->input->post('id_status');
if ($status !== 4 ) {
$fleet = date('ymd',strtotime(str_replace('-', '/', $date))).$shift.$status;
}
else
{
$fleet = date('ymd',strtotime(str_replace('-', '/', $date))).$shift.$exca_id;
}
$data = array(
'date' => $date,
'shift' => $shift,
'exca_id' => $exca_id,
'fleet_status' => $fleet,
'id_status' => $status,
);
如果语句不正确,当我输入id_status == 4将运行上面的代码但是没有运行。
换句话说,在上面的代码中,当我输入id_status == 4
时$fleet = date('ymd',strtotime(str_replace('-', '/',$date))).$shift.$status;
当我输入id_status时,应该运行== 4将运行
$fleet = date('ymd',strtotime(str_replace('-', '/', $date))).$shift.$exca_id;
你可以帮我解决这个问题吗?
答案 0 :(得分:0)
Replace this code
if ($status != 4 ) {
$fleet = date('ymd',strtotime(str_replace('-', '/', $date))).$shift.$status;
}
else
{
$fleet = date('ymd',strtotime(str_replace('-', '/', $date))).$shift.$exca_id;
}
答案 1 :(得分:0)
==
(松散相等)的反面是!=
===
(严格相等)的反面是!==
您可能正在将字符串'4'
与数字4
进行比较。这两个值松散相等但严格相等,所以你想要!=
而不是!==
另一种解决方法是将$status
严格地与字符串'4'
进行比较,因为输入肯定会返回一个字符串。
例如
$status !== '4'
或者,将输入转换为整数可能是最佳解决方案,因为它会向团队中的其他人显示您的状态为数字的意图。
(int)$status !== 4