-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 に答える