【发布时间】:2019-08-04 23:32:28
【问题描述】:
我的图片:
在这张图片中,我正在使用单选按钮保存组类型。如果选择资产负债表,则保存为“B”,损益表保存为“P”。如果没有选择任何内容,则保存为“T”。
现在我的问题是我正在使用三元运算符来检查条件,但对我来说只有第二个条件有效。它不适用于该运算符中的多个条件。 我如何解决我的问题。
public function GEntry()
{
$session_data = $this->session->userdata('logged_in');
$data['username'] = $session_data['username'];
$this->form_validation->set_rules('gName', 'gName', 'required');
$this->form_validation->set_error_delimiters('<div class="text-danger">',
'</div>');
$check1 = isset($_POST['gType']);
$check = ($check1 == 'B') ? "B" : ($check1 == 'P') ? "P" :'T';
//$check1 = isset($_POST['tin_no1']) ? "Y" : "N";
if ($this->form_validation->run())
{
$data= array(
'gName' => $this->input->post('gName'),
'gType' => $check
);
//means insert a data into the table
$this->db->insert('groups',$data);
return redirect('Master/Groups');
}
【问题讨论】:
-
嵌套多个三元运算符是一种很大的代码味道。它很快变得不可读,并且很难维护。我建议改为分多个步骤进行。您应该始终尝试编写尽可能可读的代码。
-
这个问题和 Codeigniter 有什么关系?
$check = in_array($check1, ['B', 'P']) ? $check1 : 'T'
标签: php codeigniter ternary-operator