PHP代码修改:东京5晚及以上旅客享200美元折扣实现方案
如何在不修改原有PHP代码的前提下添加东京长住折扣逻辑?
嘿,我来帮你搞定这个需求!首先明确核心要求:原有PHP代码完全不能改,只能新增逻辑;针对「去东京+入住≥5晚」的旅客,每人减200美元;输入1位、5晚、东京时最终金额必须是2575美元,而且必须用嵌套If或者复合布尔表达式实现。
先理清楚前提:能算出最终2575的话,原有代码计算的基础金额肯定是2775美元(2775-200=2575),所以我们的任务就是在原有金额计算完成后,新增折扣判断的逻辑。
下面给你两种符合要求的实现方式:
方式一:复合布尔表达式实现
这种方式用一个条件判断同时验证两个要求,代码更简洁:
// 注意:以下是你需要新增的代码,原有计算基础金额的代码保持不动 $passengerCount = 1; // 输入的旅客数量 $nights = 5; // 输入的入住晚数 $destination = 'Tokyo'; // 输入的目的地 $discount = 0; // 复合布尔表达式同时判断目的地和入住时长 if ($destination === 'Tokyo' && $nights >= 5) { $discount = 200 * $passengerCount; } // 用原有代码算出的$baseAmount(此处为2775)减去折扣得到最终金额 $finalAmount = $baseAmount - $discount; echo $finalAmount; // 输出2575
方式二:嵌套If语句实现
如果必须用嵌套逻辑,这种方式完全符合要求:
// 同样,以下是新增的代码,原有代码不动 $passengerCount = 1; $nights = 5; $destination = 'Tokyo'; $discount = 0; // 第一层判断目的地是否为东京 if ($destination === 'Tokyo') { // 第二层判断入住时长是否≥5晚 if ($nights >= 5) { $discount = 200 * $passengerCount; } } $finalAmount = $baseAmount - $discount; echo $finalAmount; // 输出2575
两种方案都满足所有要求:没有触碰原有代码,分别用了复合布尔表达式和嵌套If逻辑,输入指定参数时能准确输出2575美元。你可以根据实际场景选择其中一种即可。
内容的提问来源于stack exchange,提问作者Boram Lamppa
相关产品推荐
相关产品推荐

