从另一个php文件调用未定义的函数

时间:2012-05-28 16:31:17

标签: php include undefined

好吧,这就是我的代码看起来像

的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

知道我做错了什么吗? 感谢

5 个答案:

答案 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'];

如果您的文件位于http://mywebsite.com/include/testfile.php

,它应该可以正常工作

答案 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”的名字对我来说是有效的。

我希望其他人可以对这里出了什么问题添加更多的技术评论。