如何在 php - 工资计算器中优化这个简短的脚本

How to optimize this short script in php - salary calc

如果可能,请帮我缩短代码。它工作正常,但要回应薪水的所有元素,我必须重复此操作:

$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"; 

    }

?>

不要使用 *= 运算符,您会没事的。所以而不是

$ubeemer = $pensjaBrutto *=0.098

改为使用

$ubeemer = $pensjaBrutto * 0.098;

区别在于 *= 运算符告诉脚本将 $pensjaBrutto 乘以 .098,并将新值分配给 $pensjaBrutto。如果您改用 * 运算符,它将 return $pensjaBrutto 的值 * 0.098,允许您将其分配给 $ubeemer,但不会更改 $pennsjaBrutto 的原始值。

换句话说,将所有 *= 替换为 *,应该没问题。

像这样?

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);
}