【问题标题】:How to optimize this short script in php - salary calc如何在 php 中优化这个短脚本 - 工资计算
【发布时间】:2016-06-27 03:53:56
【问题描述】:

如果可能,请帮助我缩短代码。它工作正常,但为了呼应工资的所有元素,我必须重复这一点:

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

    }

?>

【问题讨论】:

    标签: php calculator


    【解决方案1】:

    像这样?

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

    【讨论】:

      【解决方案2】:

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

      $ubeemer = $pensjaBrutto *=0.098
      

      改为使用

      $ubeemer = $pensjaBrutto * 0.098;
      

      不同之处在于 *= 运算符告诉脚本将 $pensjaBrutto 乘以 0.098,将新值分配给 $pensjaBrutto。如果您改用 * 运算符,它将返回 $pensjaBrutto * 0.098 的值,允许您将其分配给 $ubeemer,但不会更改 $pennsjaBrutto 的原始值。

      换句话说,将所有出现的 *= 替换为 *,就可以了。

      【讨论】:

        猜你喜欢
        • 2018-07-13
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2013-01-15
        • 2013-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多