编写具有 3 种可能性的 if 结构(或 switch 或 case 或 w/e)的最佳方法是什么。
if($tekst!=''){
$qry="tekst filled in";
}
elseif($aantal!=''){
$qry="aantal filled in";
}
elseif($aantal!=''&&$tekst!='')
{
$qry="both filled in";
}
编写具有 3 种可能性的 if 结构(或 switch 或 case 或 w/e)的最佳方法是什么。
if($tekst!=''){
$qry="tekst filled in";
}
elseif($aantal!=''){
$qry="aantal filled in";
}
elseif($aantal!=''&&$tekst!='')
{
$qry="both filled in";
}
这不适合stackoverflow。您的问题可能会被关闭。我只是警告你
...只是有人想要编码风格的建议...
由于组合检查 ($aantal!=''&&$tekst!=''),switch 语句不可用。所以 if/else 语句是你最好的选择(恕我直言)。但是,我会将其写为:
if($aantal && $tekst) {
$qry="both filled in";
}
else if($tekst) {
$qry="tekst filled in";
}
else if($aantal) {
$qry="aantal filled in";
}
我个人觉得这种方式更具可读性。
注意:在发布问题之前,请务必将本地化敏感文本写成英文。
什么意义上的最优?
一个想法是:
var r = [ [ undefined, "tekst filled in" ],
[ "aantal filled in", "both filled in" ]];
$qry = r[+($aantal!='')][+($tekst!='')];
+
-operator 用于将 'false' 评估为 0,将 'true' 评估为 1 以进行索引。R 也可以定义为键为 'true' 和 'false' 的对象:
r = { "true" : { "true": "Both filled in", "false": "tekst filled in" },
"false" : { "true": "aantal filled in" } };
$qry = r[$aantal!=''][$tekst!=''];
if(something) {
...
}
else if(something-else-specific) { /* other specific case */
...
}
else { /* any other cases*/
...
}
这就是全部。