如何在 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);
}
如果可能,请帮我缩短代码。它工作正常,但要回应薪水的所有元素,我必须重复此操作:
$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);
}