Пожалуйста, помогите мне сократить код, если это возможно. Это работает правильно, но чтобы повторить все элементы зарплаты, я должен повторить это:
$ 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";
}
?>
Как это?
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);
}
Не используйте оператор * =, и все будет в порядке. Так что вместо
$ubeemer = $pensjaBrutto *=0.098
Вместо этого используйте
$ubeemer = $pensjaBrutto * 0.098;
Разница в том, что оператор * = сообщает сценарию умножить $ pensjaBrutto на .098, присваивая это новое значение $ pensjaBrutto. Если вместо этого вы используете оператор *, он вернет значение $ pensjaBrutto * 0.098, что позволит вам присвоить его $ ubeemer, но без изменения исходного значения $ pennsjaBrutto.
Другими словами, замените все вхождения * = на *, и все будет в порядке.