我对PHP很陌生,我正在尝试自己学习。
我试图创建一个带有简单计算的简单表单以合并到我的网站上,但我得到了这个E_Notice。并且不知道如何在 html 中回显结果。
有人可以帮忙吗?
链接在这里: PHPfiddle
您的代码会检查是否设置了$_POST['valor-finan']
- 如果是,它将变量设置为 $valor_finan
。如果未设置,则永远不会创建变量$valor_finan
。然后,你的代码检查它是否为空 - 它不是空的,它甚至不存在。
相反,无论如何,您都应该将变量设置为某种东西,这样它就会存在于代码中。如果获取一些$_POST
数据,请使用该数据,否则提供默认值,如 false。
empty
不是检查数值的最佳函数。使用 is_numeric
-- 0 对于您的应用程序来说可能是可以接受的,但empty
会认为 0 是...空。不利于财务计算。
此外,您在不需要的地方使用全局变量。global
关键字始终是不良做法。switch
也是不必要的。
以下是您的代码,其中包含更正:
$valor_finan = (
isset($_POST['valor-finan']) ?
$_POST['valor-finan'] : false
);
$valor_entrada = (
isset($_POST['valor-entrada']) ?
$_POST['valor-entrada'] : false
);
$numero_parcela = (
isset($_POST['numero-parcela']) ?
$_POST['numero-parcela'] : false
);
function calculaFinanciamento ($valor_finan, $valor_entrada, $numero_parcela) {
if(
is_numeric($valor_finan) &&
is_numeric($valor_entrada) &&
is_numeric($numero_parcela)
){
$taxa_percent = 5;
$valor_parcela_bruto = ($valor_finan - $valor_entrada) / $numero_parcela;
$valor_percent = ($taxa_percent / 100) * $valor_parcela_bruto;
$valor_parcela = $valor_parcela_bruto + $valor_percent;
return $valor_parcela;
} else {
return "Por favor preencha os campos, todos são requeridos";
}
}
echo calculaFinanciamento($valor_finan, $valor_entrada, $numero_parcela);
您的变量valor_finan、valor_entrada numero_parcela尚未设置。使用 isset($valor_finan) 等来检查它们是否包含记录/是否已设置。