这是我的代码。
<p>You worked <?php echo $hours ?>hour(s) this week.</p>
<p>Your pay for the week is: <?php $wage = $_GET["wage"] * ($hours > 40 ? $hours * 1.5 : $hours);
;echo number_format("$wage",2); ?></p>
关于这一点,如果它超过40+,它计算为1.5。 但我想要这样。 让我们说你工作41个小时。 我希望40小时成为标准费率 并且1小时乘以1.5
我该怎么做?
答案 0 :(得分:1)
在if子句中更改公式:
<p>Your pay for the week is: <?php $wage = $_GET["wage"] * ($hours > 40 ? ($hours-40) * 1.5 + 40: $hours);
答案 1 :(得分:1)
正如您在问题中写的那样(不在您的代码中):
$wage * ($hours > 40 ? 40 : $hours) + $wage * 1.5 * ($hours > 40 ? $hours - 40 : 0)
或者,浓缩:
$wage * ($hours > 40 ? 40 + ($hours-40)*1.5 : $hours)
答案 2 :(得分:0)
我会在程序上写出来,以便你更清楚你正在做什么:
<?php
$normal_wage = $_GET["wage"];
$overtm_wage = 1.5 * $normal_wage;
$normal_hours = min($hours, 40);
$overtm_hours = $hours - $normal_hours;
$total_pay = ($normal_wage * $normal_hours) + ($overtm_wage * $overtm_hours);
echo "<p>You worked {$normal_hours} standard hour(s) and {$overtm_hours} overtime hour(s) this week (a total of {$hours} hours).</p>";
echo "<p>Your pay for the week is: £" . number_format($total_pay, 2) . "</p>";
?>
PHP在尽可能少的字符中编写代码没有什么好处,这样做实际上限制了可维护性。