Php 在这种类型的if-else($var==2)中,如何使用if-else-if'';:'';

Php 在这种类型的if-else($var==2)中,如何使用if-else-if'';:'';,php,if-statement,Php,If Statement,我可以在这种格式中使用多个if-else吗 $data->frm_status==1? "Incomplete" :"other" 我试过不同的方法。像这样 $data->frm_status==1? "Incomplete" $data->frm_status==2 ?"Analysis Done":"other" $data->frm_status==1? "Incomplete" ? $data->frm_status==2 ?"Analysis Don

我可以在这种格式中使用多个if-else吗

$data->frm_status==1? "Incomplete" :"other" 
我试过不同的方法。像这样

$data->frm_status==1? "Incomplete" $data->frm_status==2 ?"Analysis Done":"other"

$data->frm_status==1? "Incomplete" ? $data->frm_status==2 ?"Analysis Done":"other"
这就是错误所在。我无法在谷歌上搜索这个,因为我不知道这个语法的名称

虽然我知道我可以用这个

if()
{
    //
}else if()
{
  // 
}else
{
   //
}

三元运算符不是多个
(else)的好选择,如果
s:

echo $data->frm_status == 1 ? "Incomplete" : ($data->frm_status == 2 ? "Analysis Done" : "other");
更好的方法是:

if ($data->frm_status == 1) {
    echo 'Incomplete';
} elseif ($data->frm_status == 2) {
    echo 'Analysis Done';
} else {
    echo 'other';
}
开关

switch ($data->frm_status) {
    case 1:
        'Incomplete';
        break;
    case 2:
        'Analysis Done';
        break;
    default: 
        'Other';
        break;
}

“但这就是错误”是什么?如果你有正确的语法,你能读懂吗?如果不是,则使用普通的
If
语句。括号是您的朋友!请注意,是左关联的。Google上的“三元运算符”称为,它与if/then/else语句不同。随意使用括号来控制评估的顺序。你的答案有效。但是我可以知道三元运算符和嵌套if-else if@ris之间的区别吗?@ris:它是相同的,没有区别,只是其他语法。对于像
echo$a==2?这样的短构造,三元运算符更好true':'false'
if-elsif-else
用于更长的构造。两种情况下的结果是相同的。换句话说,三元运算符是
if
condition的替代语法。好的,谢谢你的回答。它不完全相同。如果满足某个条件,if语句将执行代码。正如您在这个答案中所看到的,一个值被回响。三元表达式是计算为值的表达式。它本身不起任何作用,但您可以分配或使用该值来做一些事情。出于这个原因,我还认为
switch
语句是错误的。它包含松散的字符串,这些字符串本身不做任何事情。