如何将此 if else 语句转换为三元运算符?
How can I convert this if else statement into ternary operator?
我有一段代码,我想将它转换为三元运算符。谁能帮忙?它有 1 个 if 和 2 个 else if 条件,所以我无法转换它。这是我的代码。
if ($this->session->data['desired_service']==1){
echo 'Home Delivery';
} else if ($this->session->data['desired_service']==2){
echo 'Take Away';
} else if ($this->session->data['desired_service']==3){
echo 'DinIN';
}
这是我目前使用的代码。
$service = ( $this->session->data['desired_service']== 1 ) ? "Home Delivery" : ( $this->session->data['desired_service'] == 2 ) ? "Take Away" : ( $this->session->data['desired_service'] == 3 ) ? "DinIN";
但是它给我一个语法错误。
echo ($this->session->data['desired_service'] == 3) ? 'DinIN' : (($this->session->data['desired_service']==1) ? 'Home Delivery' : ($this->session->data['desired_service'] == 2) ? 'Take Away' : '');
解释:
使用嵌套的三元运算符。
If variable equal to 3, print 'DinIN'
else : two cases:
if 1 : Home Delivery
else : Take Away
演示:
另一种解决方案
使用预定义数组:
获取数组中的所有选项并添加
1、2 和 3 作为键。
用 isset
和变量检查数组。
如果已设置,打印它,否则空白。
目的已解决。
<?php
$arr = array();
$arr[1] = 'Home Delivery';
$arr[2] = 'Take Away';
$arr[3] = 'DinIN';
echo isset($arr[$this->session->data['desired_service']]) ? $arr[$this->session->data['desired_service']] : '';
?>
这不是何时使用三元运算符的好例子。就个人而言,查看您的数据 - 我会使用 switch 语句,因为它更容易阅读并添加更多选项。
switch($this->session->data['desired_service']){
case '1':
$service = "Home Delivery";
break;
case '2':
$service = "Take Away";
break;
case '3':
$service = "DinIN";
break;
}
我有一段代码,我想将它转换为三元运算符。谁能帮忙?它有 1 个 if 和 2 个 else if 条件,所以我无法转换它。这是我的代码。
if ($this->session->data['desired_service']==1){
echo 'Home Delivery';
} else if ($this->session->data['desired_service']==2){
echo 'Take Away';
} else if ($this->session->data['desired_service']==3){
echo 'DinIN';
}
这是我目前使用的代码。
$service = ( $this->session->data['desired_service']== 1 ) ? "Home Delivery" : ( $this->session->data['desired_service'] == 2 ) ? "Take Away" : ( $this->session->data['desired_service'] == 3 ) ? "DinIN";
但是它给我一个语法错误。
echo ($this->session->data['desired_service'] == 3) ? 'DinIN' : (($this->session->data['desired_service']==1) ? 'Home Delivery' : ($this->session->data['desired_service'] == 2) ? 'Take Away' : '');
解释:
使用嵌套的三元运算符。
If variable equal to 3, print 'DinIN'
else : two cases:
if 1 : Home Delivery
else : Take Away
演示:
另一种解决方案
使用预定义数组:
获取数组中的所有选项并添加
1、2 和 3 作为键。
用 isset
和变量检查数组。
如果已设置,打印它,否则空白。
目的已解决。
<?php
$arr = array();
$arr[1] = 'Home Delivery';
$arr[2] = 'Take Away';
$arr[3] = 'DinIN';
echo isset($arr[$this->session->data['desired_service']]) ? $arr[$this->session->data['desired_service']] : '';
?>
这不是何时使用三元运算符的好例子。就个人而言,查看您的数据 - 我会使用 switch 语句,因为它更容易阅读并添加更多选项。
switch($this->session->data['desired_service']){
case '1':
$service = "Home Delivery";
break;
case '2':
$service = "Take Away";
break;
case '3':
$service = "DinIN";
break;
}