if($row['sale_type']=='pre'&&$row['stock_type']==''or$row['sale_type']==''&&$row['delivery_from']!=0or$row['sale_type']==''&&$row['delivery_from']==0&&$row['stock']==0&&$row['stock_type']=='pre'){//dosomething}$row会变,dosomething也会变但是带入的值都会是一样的,ifor的判断也是长得一样这样有办法提出来吗?发现网站有十几个一样的判断,想提出来,方便管理
2 回答
烙印99
TA贡献1829条经验 获得超13个赞
这样?functioncheckXxx($row){return($row['sale_type']=='pre'&&$row['stock_type']==''or$row['sale_type']==''&&$row['delivery_from']!=0or$row['sale_type']==''&&$row['delivery_from']==0&&$row['stock']==0&&$row['stock_type']=='pre')}if(checkXxx($row)===true){//dosomething}
炎炎设计
TA贡献1808条经验 获得超4个赞
这类需求我们一般使用配置数组来实现,尽量不修改代码,下面是例子,具体实现可以根据需求修改//规则配置$rules=[['sale_type'=>array('===','pre'),'stock_type'=>array('===','')],['sale_type'=>array('===',''),'stock_type'=>array('!==',0)]];functioncheckRule($rules,$row){foreach($rulesas$rule){$ruleResult=True;foreach($ruleas$ruleKey=>$ruleJudge){eval('$ret=$row[$ruleKey]'.$ruleJudge[0].'$ruleJudge[1];');if(!$ret){$ruleResult=False;}}//由于是or条件,只有有一个规则组成立就通过if($ruleResult===True){returnTrue;}}//所有条件不通过returnFalse;}if(checkRule($rules,$row)){//dosomething}
添加回答
举报
0/150
提交
取消