1

我无法理解为什么我的类 php 程序不起作用。我查看了很多文档,我认为我正确地包含了它,但它说无法在包含上打开流,当我调用该函数时它说它是未定义的,有人可以在这里指出我可能非常简单的错误。这是我的 php 页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php include 'C:\xampp\htdocs\program1include.php' ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Future Value Calculator</title>
</head>

<body>
<form method="post">
Principal <input type="text" name="principal" value="<?php if (isset($_POST['principal'])) echo $_POST['principal']; ?>"><br />
Interest Rate <input type="text" name="rate" value="<?php if (isset($_POST['rate'])) echo $_POST['rate']; ?>"><br />
Years to Invest <input type="text" name="years" value="<?php if (isset($_POST['years'])) echo $_POST['years']; ?>"><br />
<input type='submit' name='Submit' value='Get Future Value.' /><br />
Future Value:
<?php figureValue(); if(isset($futureValue)){
    echo $futureValue;
}
    else
    {
        echo 'Please Fill Out All Fields.';
    }
?>
</form>
</body>
</html>

这是包括在内

<?php 
    function figureValue($principal,$rate,$years){

        $futureValue = round($principal * pow(1 + ($rate/100),
        $years), 2);
    }
    ?>

页面输出

警告:include(C:\xampp\htdocs\program1include.php):无法打开流:第 2 行的 C:\xampp\htdocs\program1php.php 中没有此类文件或目录

警告:include():在 C:\xampp\htdocs\program1php.php 中打开 'C:\xampp\htdocs\program1include.php' 以包含 (include_path='.;C:\xampp\php\PEAR') 失败第 2 行本金利率投资年份

终值:致命错误:在第 16 行调用 C:\xampp\htdocs\program1php.php 中未定义的函数 figureValue()

4

3 回答 3

1

该变量$futureValue是函数的局部变量。在那里分配它不会在主程序中设置变量。您需要退回它:

function figureValue($principal,$rate,$years){

    $futureValue = round($principal * pow(1 + ($rate/100), $years), 2);
    return $futureValue;
}

您还需要将$_POST参数作为参数传递给函数。

<?php if (isset($_POST['Submit']) { $futureValue = figureValue($_POST['principle'], $_POST['rate'], $_POST['years']);
    echo $futureValue;
}
    else
    {
        echo 'Please Fill Out All Fields.';
    }
?>
于 2013-04-17T21:10:51.303 回答
0

如果这两个文件在同一个目录中,只需使用文件名,而不是整个路径。

include 'program1include.php'

我完全复制了您的代码并更改了上面的一行并且没有收到任何警告。您不想在脚本 (c:) 中访问文件系统。

检查事项

这两个文件都在同一个目录中。每个文件的命名与您上面的完全相同。(将它们重命名为易于检查的名称)

巴尔马尔是正确的。没有他的编辑,程序仍然无法运行。

于 2013-04-17T21:11:37.730 回答
0

尝试转义包含

C:\\xampp\\htdocs\\program1include.php

改变

<?php include 'C:\xampp\htdocs\program1include.php' ?>

<?php include 'C:\\xampp\\htdocs\\program1include.php'; ?>

于 2013-04-17T21:08:45.520 回答