好吧,这就是我的代码的样子
索引.php
require_once($WebsiteRoot . "/include/testfile.php");
TestFunction();
/include/testfile.php
function TestFunction()
{
echo "It Works";
}
它给了我错误:
Fatal error:
Call to undefined function TestFunction() in /path/index.php on line 49
知道我做错了什么吗?谢谢
您尚未在包含的文件中包含<?php
标记,因此它只是被解释为纯文本输入。
记得。。。没有PHP脚本这样的东西。只有包含PHP代码块的文件。如果没有至少一个<?php
开始标记,PHP 解释器将永远不会被调用,文件的内容将仅被视为输出。
尝试从testfile.php调用另一个函数,如果这不起作用,则带有包含的内容。添加代码:
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
到索引顶部.php刷新浏览器以查看错误,请尝试从那里进行调试。
我可以预见的问题是你使用的是 URL 而不是路径,你的$websiteRoot变量应该包含一个路径,如下所示:
$websiteRoot = "/var/www/html/websiteName";
OR
$websiteRoot = "C://xampp/htdocs/websiteName";
而不是像这样的网址:
$websiteRoot = "http://www.somesite.com";
我也有类似的问题。我在包含的文件中深入研究了 PHP,发现了一个无效的 PHP 标签。我有<?
而不是<?php
.PHP 7.2 及更早版本原谅了这一点,但 PHP 7.3 抛出了与您面临的相同错误。
确保包含您认为的文件。如果您的index.php
页面看起来与您所说的完全一样,那么它不会返回任何内容。
如果您想从站点上的任何地方链接到同一位置而不必担心相对位置,那么在文件的开头,将:
$WebsiteRoot=$_SERVER['DOCUMENT_ROOT'];
它应该工作正常,前提是您的文件位于 http://mywebsite.com/include/testfile.php
尝试重命名包含的文件。
我有一个包含名为"system.php"的文件。看起来好像刚刚跳过了包含命令。即使使用最严格的错误报告,也没有消息,甚至包含文件主体中的 echo 命令也不会产生输出。它在 PHP 5 下运行良好,但在升级到 7.2 环境后出现了这些问题。经过很多努力 - 我忘记了如何 - 我设法收到一条错误消息。它说与一个名为"系统"的PEAR类存在冲突。然而,我的文件不包含任何类,只有变量和函数。无论如何,给文件起另一个名字而不是"system.php"对我有用。
我希望其他人可以就这里出现的问题添加更多技术性评论。