php中不能用连续三目的写法吗 本帖最后由 lghyt2 于 2014-01-07 11:20:34 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然可以!$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; $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 内层的三目运算用括号完整括起来看来你突发奇想,不能乱括的,想象力的丰富要建议在遵守游戏规则的基础上。这跟想象力的丰富没有关系,关键再与自己的逻辑,让你括起来,并不是让你乱括呀!拿你上面的举例:$bqr['classid'] = 8;$val = ($bqr['classid']==7) ? 1: (($bqr['classid']==8) ? 2: (($bqr['classid']==9) ? 3: (($bqr['classid']==10) ? 4:false)));这样括起来,是不是你想要的呢 嗯,出现歧义了其实这样写不是很清晰吗?$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']]; 你这样写,不带括号,等价于(( ( ($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; 额,抱歉,发帖太少,不会用这个编辑器,代码是这样的(((($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; 大神们,帮我解决个问题!网站访客的统计的问题 http://yik.me/stat/10003436/10034.aspx,做个这样的网站大概需要多久 推荐一款php编辑器 - Dev-PHP 上传图片的问题 这个参数怎么传递 mysql 如何在SQL语句里改变文本型字段的值 include('./config.php')出错,include('config.php')正常 发布测试版AJAX类JoAjax 1.0 高分球就PHP,有人会吗? 十万火急!!!!php和sql server大量数据问题,高手请进!!! 怎么搭建外网服务器? 安装php程序错误问题
($bqr[classid]==8) ? $arrImg[1][$bqno3-1]:
($bqr[classid]==9) ? $arrImg[2][$bqno3-1]:
($bqr[classid]==10) ? $arrImg[3][$bqno3-1]:false;
$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
内层的三目运算用括号完整括起来看来你突发奇想,不能乱括的,想象力的丰富要建议在遵守游戏规则的基础上。
这跟想象力的丰富没有关系,关键再与自己的逻辑,让你括起来,并不是让你乱括呀!
拿你上面的举例:$bqr['classid'] = 8;
$val = ($bqr['classid']==7) ? 1: (($bqr['classid']==8) ? 2: (($bqr['classid']==9) ? 3: (($bqr['classid']==10) ? 4:false)));这样括起来,是不是你想要的呢
其实这样写不是很清晰吗?
$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']];
你这样写,不带括号,等价于(( ( ($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;
(((($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;