-1

我对 PHP 很陌生,我正在努力自学。

我试图用一个简单的计算创建一个简单的表单来合并到我的网站上,但我得到了这个 E_Notice。而且也不知道如何在 html 中回显结果。

有人可以帮忙吗?

链接在这里:PHPfiddle

4

2 回答 2

2

您的代码检查是否$_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);
于 2013-11-13T06:03:14.253 回答
0

您的变量 valor_finan 、 valor_entrada 、 numero_parcela 尚未设置。使用 isset($valor_finan) 等检查它们是否包含记录/已设置。

于 2013-11-13T05:56:56.213 回答