好吧,这就是我的代码看起来像
的index.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
知道我做错了什么吗? 感谢
答案 0 :(得分:4)
您没有在包含的文件中包含<?php
标记,因此它只是被解释为纯文本输入。
记住......没有PHP脚本这样的东西。只有包含PHP代码块的文件。如果没有至少一个<?php
开始标记,则永远不会调用PHP解释器,并且文件的内容将被简单地视为输出。
答案 1 :(得分:1)
尝试从testfile.php调用另一个函数,如果这不起作用,那就是include的东西。添加代码:
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
到index.php的顶部并刷新浏览器以查看错误,从那里尝试调试。
我可以预见的问题是你使用的是URL而不是路径,你的$ websiteRoot变量应该包含如下路径:
$websiteRoot = "/var/www/html/websiteName";
OR
$websiteRoot = "C://xampp/htdocs/websiteName";
而不是像:
这样的网址$websiteRoot = "http://www.somesite.com";
答案 2 :(得分:0)
确保包含您认为自己的文件。如果您的index.php
页面看起来与您所说的完全一致,那么它将不会返回任何内容。
如果您想从网站上的任何位置链接到同一位置而不必担心相对位置,那么请在文件的开头添加:
$WebsiteRoot=$_SERVER['DOCUMENT_ROOT'];
,它应该可以正常工作
答案 3 :(得分:0)
我有一个类似的问题。我在包含的文件中挖掘了PHP,发现一个无效的PHP标记。我有<?
而不是<?php
。 PHP 7.2和更早版本对此原谅了,但是PHP 7.3抛出了您遇到的相同错误。
答案 4 :(得分:0)
尝试重命名包含的文件。
我有一个包含文件,名称为“ system.php”。看起来好像只是跳过了include命令。即使使用最严格的错误报告,也没有消息,甚至包含文件主体中的echo命令也不会产生输出。在PHP 5下运行正常,但是升级到7.2环境后,出现了这些问题。经过大量的努力-我忘记了如何-我设法收到一条错误消息。它说与名称为“ system”的PEAR类发生冲突。但是我的文件不包含任何类,仅包含变量和函数。无论如何,给文件起一个不同于“ system.php”的名字对我来说是有效的。
我希望其他人可以对这里出了什么问题添加更多的技术评论。