codeigniter 中的 if 语句

if statement in codeigniter

我在控制器中有这样的代码:

            $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,
                );

if 语句不正确,当我输入 id_status == 4 时,上面的代码将 运行 else 但 else 不是 运行ning。

换句话说,在上面的代码中,当我输入 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;

你能帮我解决这个问题吗?

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;
            }

==(松散等式)的反义词是!=

===(严格相等)的反义词是!==

您可能正在比较字符串 '4' 和数字 4。这两个值松散相等但严格不相等,所以你想要!=而不是!==

另一个修复方法是将 $status 严格与字符串 '4' 进行比较,因为输入肯定会返回一个字符串。

例如

$status !== '4'

或者,将输入转换为整数可能是最好的解决方法,因为它向您团队中的其他人表明您希望将状态设为数字。

(int)$status !== 4