калькулятор — Как оптимизировать этот короткий скрипт в калькуляторе зарплаты

Пожалуйста, помогите мне сократить код, если это возможно. Это работает правильно, но чтобы повторить все элементы зарплаты, я должен повторить это:

$ pensjaBrutto = $ _GET [‘pensjaBrutto’];

Можно ли пропустить это повторение?

вот код:

    <form method="get" action="">
<meta charset="UTF-8">
<label>Wprowadź kwotę zarobków <u>brutto</u></label>
<br>
<input type="text" name="pensjaBrutto" value="<?=(isset( $_GET['pensjaBrutto'] ))?$_GET['pensjaBrutto']:''?>"/>
<br>
<input type="submit" />
</form>

<?php
if( isset( $_GET['pensjaBrutto'] ) ){
echo "Wynagrodzenie brutto: PLN ".$pensjaBrutto = $_GET['pensjaBrutto'];

$pensjaNetto = $pensjaBrutto *=0.703;
echo "<br>Wynagrodzenie netto: $pensjaNetto PLN";

$pensjaBrutto = $_GET['pensjaBrutto'];
$sklzdr = $pensjaBrutto *=0.078;
echo "<br>Skł zdrowotna: $sklzdr PLN";

$pensjaBrutto = $_GET['pensjaBrutto'];
$ubechor = $pensjaBrutto *=0.025;
echo "<br>Ubez chorobowe: $ubechor PLN";

$pensjaBrutto = $_GET['pensjaBrutto'];
$uberent = $pensjaBrutto *=0.015;
echo "<br>Ubez rentowe: $uberent PLN";

$pensjaBrutto = $_GET['pensjaBrutto'];
$ubeemer = $pensjaBrutto *=0.098;
echo "<br>Ubez emerytalne: $ubeemer PLN";

$pensjaBrutto = $_GET['pensjaBrutto'];
$zalpit = $pensjaBrutto *=0.081;
echo "<br>Zaliczka na PIT: $zalpit PLN";

}

?>

0

Решение

Как это?

if(isset($_GET['pensjaBrutto']))
{
echo "Wynagrodzenie brutto: PLN ".$_GET['pensjaBrutto'];

$calculations = array(
'Wynagrodzenie netto'=>.703,
'Skł zdrowotna'=>.078,
'Ubez chorobowe'=>.025,
'Ubez rentowe'=>.015,
'Ubez emerytalne'=>.098,
'Zaliczka na PIT'=>.081
);

foreach($calculations as $k=>&$v)
{
echo "<br>$k: ".((float)$_GET['pensjaBrutto'] * $v)." PLN";
}
unset($v);
}
4

Другие решения

Не используйте оператор * =, и все будет в порядке. Так что вместо

$ubeemer = $pensjaBrutto *=0.098

Вместо этого используйте

$ubeemer = $pensjaBrutto * 0.098;

Разница в том, что оператор * = сообщает сценарию умножить $ pensjaBrutto на .098, присваивая это новое значение $ pensjaBrutto. Если вместо этого вы используете оператор *, он вернет значение $ pensjaBrutto * 0.098, что позволит вам присвоить его $ ubeemer, но без изменения исходного значения $ pennsjaBrutto.

Другими словами, замените все вхождения * = на *, и все будет в порядке.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector