Php 有没有办法简化这段代码,提高效率?
有没有办法简化这段代码?“elseif”语句似乎不起作用,导致我的应用程序抛出错误Php 有没有办法简化这段代码,提高效率?,php,language-agnostic,Php,Language Agnostic,有没有办法简化这段代码?“elseif”语句似乎不起作用,导致我的应用程序抛出错误 if(@@Employee_Position=="Manager") { if(@@CER_BioMed == "Y" && @@CER_PO == "Y") @%ISINDEX=5; elseif(@@CER_BioMed == "Y" && @@CER_PO != "Y") @%ISINDEX=4; elseif(@@C
if(@@Employee_Position=="Manager") {
if(@@CER_BioMed == "Y" && @@CER_PO == "Y")
@%ISINDEX=5;
elseif(@@CER_BioMed == "Y" && @@CER_PO != "Y")
@%ISINDEX=4;
elseif(@@CER_BioMed != "Y" && @@CER_PO == "Y")
@%ISINDEX=4;
else
@%ISINDEX=3;
}
else {
if(@@CER_BioMed == "Y" && @@CER_PO == "Y")
@%ISINDEX=6;
elseif(@@CER_BioMed == "Y" && @@CER_PO != "Y")
@%ISINDEX=5;
elseif(@@CER_BioMed != "Y" && @@CER_PO == "Y")
@%ISINDEX=5;
else
@%ISINDEX=4;
}
更新:很抱歉不清楚。第一次在这里发布。它是用php语言编写的。它是Processmaker BPS的php触发器。因为我不知道那是什么语言,所以我会让它保持某种语言无关性:
isindex = 3;
if (employee_position != 'manager') {
isindex++;
}
if (cer_biomed == 'y') {
isindex++;
}
if (cer_po == 'y') {
isindex++;
}
我不知道这是什么语言,但是:
elseif(@@CER_BioMed == "Y" && @@CER_PO != "Y")
@%ISINDEX=4; // or 5
elseif(@@CER_BioMed != "Y" && @@CER_PO == "Y")
@%ISINDEX=4; // or 5
似乎是或的明显例子:
elseif(@@CER_BioMed == "Y" || @@CER_PO == "Y")
@%ISINDEX=4; // or 5
好吧,根据给出的,我会这样说:
if(@@CER_BioMed == "Y" && @@CER_PO == "Y")
@%ISINDEX=5;
elseif(@@CER_BioMed != "Y" XOR @@CER_PO != "Y")
@%ISINDEX=4;
else
@%ISINDEX=3;
if(@@Employee_Position=="Manager")
@%ISINDEX-=1;
假设这是一种支持-=
运算符的语言。使用
lookup_table_index = (
((@@Employee_Position=="Manager") << 2)
| ((@@CER_BioMed == "Y") << 1)
| (@@CER_PO == "Y"))
然后你可以计算你的索引
INDEX = lookup_table[lookup_table_index]
您已将其标记为php和javascript。。。是哪一个?我猜是php?这是什么语言?似乎是一个模板,将由php或JavaScript填充。哦,不,等等。。这是密码!有人问过,但我无能为力;说真的,这是什么语言?在第一个if
语句的上下文中,这无关紧要,实际上是异或
,而不是或
。这感觉有点脆弱,在以后重新访问代码时容易崩溃。
INDEX = lookup_table[lookup_table_index]