-3

这是我的代码。

<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

我怎样才能做到这一点?

4

3 回答 3

1

更改 if 子句中的公式:

<p>Your pay for the week is: <?php  $wage  = $_GET["wage"] * ($hours > 40 ? ($hours-40) * 1.5 + 40: $hours);
于 2012-10-29T18:57:25.153 回答
1

就像您在问题中所写的一样(而不是在您的代码中):

$wage * ($hours > 40 ? 40 : $hours) + $wage * 1.5 * ($hours > 40 ? $hours - 40 : 0)

或者,浓缩:

$wage * ($hours > 40 ? 40 + ($hours-40)*1.5 : $hours)
于 2012-10-29T18:57:32.653 回答
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 中用尽可能少的字符编写代码并没有太大的好处,而且这样做实际上限制了可维护性。

于 2012-10-29T19:06:57.257 回答