需要一些帮助
我有
$_POST["zapremina"]=2000;
$_POST["starost"]="15%";
$_POST["namena"]="50%";
我想要一个简单的函数来做这个
$foo=(2000 - 15%) - 50%;
怎么做?
PHP是松散类型的,所以你不必显式转换类型或做不必要的操作(例如str_replace)
你可以这样做:
$z = $_POST["zapremina"]; //$_POST["zapremina"]=2000;
$s = $_POST["starost"]; //$_POST["starost"]=15%;
$n = $_POST["namena"]; //$_POST["namena"]="50%;
$result = (($z - ($z *($s / 100))) - ($z * ($n / 100)));
请记住使用圆括号来获得可读的代码和有意义的变量名。
像这样:
$starostPercentage = (substr($POST["starost"], 0, -1) / 100);
$namenaPercentage = (substr($POST["namena"], 0, -1) / 100);
$foo = ($_POST["zapremina"] * (100 - $starostPercentage)) * $namenaPercentage;
这就是它的作用和原因:
- 将百分比(如
15%
)从文本形式转换为十进制形式(substr(15%)
=15
,15 / 100
=0.15
)。 - 用这些小数计算
$foo
。2000 - 15%
是你会写的(作为一个人),但在PHP中你需要写为2000 * (100 * 0.15)
,意思是:85%的2000)。
我选择这个:
$zap = intval($_POST['zapremina']);
$sta = intval($_POST['starost']);
$nam = intval($_POST['namena']);
$foo = ($zap * ((100-$sta)/100)) * ((100 - $nam)/100)
添加此函数并调用
function calculation($a, $b, $c)
{
$b = substr($b, 0, -1) / 100;
$c = substr($c, 0, -1) / 100;
return (($a * $b) * $c);
}
现在可以调用
$foo = calculation($_POST["zapremina"], $_POST["starost"], $_POST["namena"]);
大多数情况下使用function,因为这将有助于可重用性。