我很难理解为什么我的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>
这里是INCLUDE
<?php
function figureValue($principal,$rate,$years){
$futureValue = round($principal * pow(1 + ($rate/100),
$years), 2);
}
?>
页面输出
警告:include(C:'xampp'htdocs'program1include.php):未能打开流:在C:'xampp'htdocs'program1php.php中没有这样的文件或目录在第2行
警告:include():打开'C:'xampp'htdocs'program1include.php'包含失败(include_path='.;C:'xampp'php'PEAR')在C:'xampp'htdocs'program1php.php .php第2行主要利率投资年数
未来价值:在C:'xampp'htdocs'program1php.php第16行
变量$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.';
}
?>
尝试转义include,如
C:''xampp''htdocs''program1include.php
<?php include 'C:'xampp'htdocs'program1include.php' ?>
<?php include 'C:''xampp''htdocs''program1include.php'; ?>
如果两个文件在同一目录下,只使用文件名,而不是整个路径。
include 'program1include.php'
我完全复制了你的代码并更改了上面的一行,没有收到任何警告。您不希望访问脚本中的文件系统(c:)。
检查事项
两个文件在同一个目录下。每个文件的名称与上面的完全相同。(重命名为便于检查的名称)
Barmar是正确的。没有他的编辑,程序仍然不能运行。