本帖最后由 lghyt2 于 2014-01-07 11:20:34 编辑

解决方案 »

  1.   

    当然可以!$val = ($bqr[classid]==7) ? $arrImg[0][$bqno3-1]:
    ($bqr[classid]==8) ? $arrImg[1][$bqno3-1]:
    ($bqr[classid]==9) ? $arrImg[2][$bqno3-1]:
    ($bqr[classid]==10) ? $arrImg[3][$bqno3-1]:false;
      

  2.   


    $val=($bqr[classid]==7)?$val=$arrImg[0][$bqno3-1]:
           ($bqr[classid]==8)?$val=$arrImg[1][$bqno3-1]:
           ($bqr[classid]==9)?$val=$arrImg[2][$bqno3-1]:
           ($bqr[classid]==10)?$val=$arrImg[3][$bqno3-1]:0;                       if($bqr[classid]==7)$val=$arrImg[0][$bqno3-1];
    if($bqr[classid]==8)$val=$arrImg[1][$bqno3-1];
    if($bqr[classid]==9)$val=$arrImg[2][$bqno3-1];
    if($bqr[classid]==10)$val=$arrImg[3][$bqno3-1];    下面这个就能正常输出,上面的NO
      

  3.   


    内层的三目运算用括号完整括起来看来你突发奇想,不能乱括的,想象力的丰富要建议在遵守游戏规则的基础上。
    这跟想象力的丰富没有关系,关键再与自己的逻辑,让你括起来,并不是让你乱括呀!
    拿你上面的举例:$bqr['classid'] = 8;
    $val = ($bqr['classid']==7) ? 1: (($bqr['classid']==8) ? 2: (($bqr['classid']==9) ? 3: (($bqr['classid']==10) ? 4:false)));这样括起来,是不是你想要的呢
      

  4.   

    嗯,出现歧义了
    其实这样写不是很清晰吗?
    $d = array(
      7 => $arrImg[0][$bqno3-1],
      8 => $arrImg[1][$bqno3-1],
      9 => $arrImg[2][$bqno3-1],
      10 => $arrImg[3][$bqno3-1]
    );
    $val = $d[$bqr['classid']];
      

  5.   


    你这样写,不带括号,等价于(( ( ($bqr[classid]==7) ? $val=$arrImg[0][$bqno3-1]:($bqr[classid]==8))
     ? $val=$arrImg[1][$bqno3-1]:
    ($bqr[classid]==9)) ? $val=$arrImg[2][$bqno3-1]:
    ($bqr[classid]==10)) ? $val=$arrImg[3][$bqno3-1]:false;
      

  6.   

    额,抱歉,发帖太少,不会用这个编辑器,代码是这样的
    (((($bqr[classid]==7) ? $val=$arrImg[0][$bqno3-1]:($bqr[classid]==8))
     ? $val=$arrImg[1][$bqno3-1]:($bqr[classid]==9)) 
     ? $val=$arrImg[2][$bqno3-1]:($bqr[classid]==10))
     ? $val=$arrImg[3][$bqno3-1]:false;