Php Don';我不想在半天和短期休假案例中插入0值

Php Don';我不想在半天和短期休假案例中插入0值,php,Php,它在leave_type=11中运行良好,但在leave_type=3中仍然插入0 我不知道怎么解决这个问题 休假类型=3为半天 leave\u type=11适用于短期休假日 'days' => ($this->input->post('leave_type') == 3) ? 0.5 : ($this->input->post('leave_type') == 11) ? 0 :$days_between , 请提供解决方案请尝试以下方法: 'days' =

它在
leave_type=11
中运行良好,但在
leave_type=3
中仍然插入0 我不知道怎么解决这个问题

休假类型=3
为半天
leave\u type=11
适用于短期休假日

'days' => ($this->input->post('leave_type') == 3) ? 0.5 : ($this->input->post('leave_type') == 11) ? 0 :$days_between , 
请提供解决方案

请尝试以下方法:

'days' => ($this->input->post('leave_type') == 3) ? '0.5' : (($this->input->post('leave_type') == 11) ? 0 :$days_between) , 
请尝试以下方法:

'days' => ($this->input->post('leave_type') == 3) ? '0.5' : (($this->input->post('leave_type') == 11) ? 0 :$days_between) , 

这与您的数据库字段数据类型有关。您必须将该字段数据类型设置为整数。您需要将其设置为浮点。

这与您的数据库字段数据类型有关。您必须将该字段数据类型设置为整数。您需要将其设置为浮点。

这是因为您没有对三元运算符进行分组。

($this->input->post('leave_type') == 3) ? 0.5 : (($this->input->post('leave_type') == 11) ? 0 :$days_between)
                                                ^                                       ^
这里的解释是因为在原始代码中,它首先计算左侧的条件,即
($this->input->post('leave_type')==3)?0.5:($this->input->post('leave_type')==11)

在您的例子中,应该是
0.5
。但是,由于右侧有另一个三元运算符,
0.5
将转换为布尔类型,即
true
。因此,由于传递给下一个三元运算符的求值是true,因此返回值将是
>0

true ? 0 : $days_between

这是因为您没有对三元运算符进行分组

($this->input->post('leave_type') == 3) ? 0.5 : (($this->input->post('leave_type') == 11) ? 0 :$days_between)
                                                ^                                       ^
这里的解释是因为在原始代码中,它首先计算左侧的条件,即
($this->input->post('leave_type')==3)?0.5:($this->input->post('leave_type')==11)

在您的例子中,应该是
0.5
。但是,由于右侧有另一个三元运算符,
0.5
将转换为布尔类型,即
true
。因此,由于传递给下一个三元运算符的求值是true,因此返回值将是
>0

true ? 0 : $days_between

首先从末尾删除逗号并添加分号,然后检查数据库字段是否为整型,然后使其浮动。首先从末尾删除逗号并添加分号,然后检查数据库字段是否为整型,然后使其浮动。