如何在 codeigniter 中的三元运算符中编写多个条件?
How to write more than one condition in ternary operator in codeigniter?
我的照片:
在这张照片中,我正在使用无线电 button.if 保存组类型 sheet 是 selected 它保存为 "B" 并且盈亏为 "P".如果没有select任何东西,它保存为"T".
现在我的问题是我正在使用三元运算符来检查条件,但对我来说只有第二个条件是 working.It 在该运算符中不适用于多个条件。
我如何解决我的问题。
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');
}
您没有将 post 数据分配给变量 $check1
。你像这样检查 $check1 = isset($_POST['gType']);
这会给你 true
/ false
。
更新如下:
$check1 = isset($_POST['gType']) && in_array($_POST['gType'], ['B', 'P']) ? $_POST['gType'] : 'T';
然后删除这一行$check = ($check1 == 'B') ? "B" : ($check1 == 'P') ? "P" :'T';
您可以像这样使用括号捕获整个三元运算符:
$a = ($b === 'A') ? 'A' : (($b === 'B') ? 'B' : (($b === 'C') ? 'C' : 'D'));
但是 ...如果您的决定需要超过 2-3 个条件,我不会推荐您使用此程序。在那种情况下,我建议您改用 switch:
switch ($b)
{
case 'A':
$a = 'A';
break;
default:
$a = 'D';
break;
}
ALSO ...我建议您使用 ===
比较器,而不是像您提供的代码中那样使用 ==
比较器。第三个 =
确保两个给定值的数据类型相同,因此您将 string
与示例中的另一个 string
进行比较。
我的照片:
在这张照片中,我正在使用无线电 button.if 保存组类型 sheet 是 selected 它保存为 "B" 并且盈亏为 "P".如果没有select任何东西,它保存为"T".
现在我的问题是我正在使用三元运算符来检查条件,但对我来说只有第二个条件是 working.It 在该运算符中不适用于多个条件。 我如何解决我的问题。
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');
}
您没有将 post 数据分配给变量 $check1
。你像这样检查 $check1 = isset($_POST['gType']);
这会给你 true
/ false
。
更新如下:
$check1 = isset($_POST['gType']) && in_array($_POST['gType'], ['B', 'P']) ? $_POST['gType'] : 'T';
然后删除这一行$check = ($check1 == 'B') ? "B" : ($check1 == 'P') ? "P" :'T';
您可以像这样使用括号捕获整个三元运算符:
$a = ($b === 'A') ? 'A' : (($b === 'B') ? 'B' : (($b === 'C') ? 'C' : 'D'));
但是 ...如果您的决定需要超过 2-3 个条件,我不会推荐您使用此程序。在那种情况下,我建议您改用 switch:
switch ($b)
{
case 'A':
$a = 'A';
break;
default:
$a = 'D';
break;
}
ALSO ...我建议您使用 ===
比较器,而不是像您提供的代码中那样使用 ==
比较器。第三个 =
确保两个给定值的数据类型相同,因此您将 string
与示例中的另一个 string
进行比较。