背景:在我们的网站上,我们使用 if 语句评估一个值 - 'ff' - 是否为真,计算一个项目/订单是否符合免费送货的标准。根据满足的条件,它会适当地设置运输。我们现在需要评估一个商品是否按_的顺序免费送货。最重要的是,对于其他目的,例如外部提要,必须应用另一个条件(重量必须 = 0 或没有值),fw 才能免费送货。这是代码,我无法弄清楚它为什么不起作用:
if($r['freeFreight'] == 'ff' || ($r['freeFreight'] == 'fw' && ($r['weight'] == 0 || $r['weight'] == '') ) ) {
$r['shippingStandard'] = 0;
}
if 语句中的条件是否与 () 集过度隔离?或者,它们只是放置不正确。例如,它应该是:
if(($r['freeFreight'] == 'ff') || ($r['freeFreight'] == 'fw' && $r['weight'] == 0 || $r['weight'] == '') ) {
$r['shippingStandard'] = 0;
}
两者中的第二个对我来说似乎更合乎逻辑,因为: if ($r['freeFreight'] == 'ff') - 那么无论以下条件如何,语句都应返回 true 并将变量设置为 0。我的逻辑是否正确? 对不起这个新手问题......
谢谢你尽你所能的帮助。
所以我想也许,根据迄今为止的答案(感谢所有帮助业余爱好者的人) - 我想我将尝试:
if( ($r['freeFreight'] == 'ff') || ( $r['freeFreight'] == 'fw' ) && empty( $r['weight'] ) ) {
$r['shippingStandard'] = 0;
}
打算用这个试一下,如果根本不对,请指教。