-1

编写具有 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";
}
4

3 回答 3

2

这不适合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";
}

我个人觉得这种方式更具可读性。

注意:在发布问题之前,请务必将本地化敏感文本写成英文。

于 2013-10-29T15:53:10.987 回答
0

什么意义上的最优?

一个想法是:

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!=''];

于 2013-10-29T17:25:53.810 回答
0
if(something) {
    ...
}
else if(something-else-specific) { /* other specific case */
    ...
}
else { /* any other cases*/
   ...
}

这就是全部。

于 2013-10-29T17:32:09.823 回答