0

我已经搜索了一些答案,但找不到任何适用于我的问题的答案。

// we are in file: file.php
include('functions.php');

$i = 0;
if($i >= countServices()) break;
[...]


// we are in file: functions.php
[...]
function countServices(){
[...]
}

我已经尝试将文件functions.php包含在绝对文件路径中,但这无论如何都不起作用。

浏览器告诉我:

"Fatal error: Call to undefined function countServices() in [...]"

几天前它起作用了,现在......
你能帮我吗?

4

3 回答 3

4

尝试require('functions.php')代替include语句。如果找不到文件(这是我怀疑在这里发生的情况),Require 会抛出异常,而不是像include这样的警告,如果您没有error_reporting设置报告警告,则很容易被吞下。

于 2013-01-16T09:09:53.293 回答
0

PHP 所在的当前工作目录可能不是您认为的那样。您可以使用getcwd()进行检查。要修复它,您可以使用:

在 5.3.0 中引入:

include __DIR__ . '/functions.php';

或者

include dirname(__FILE__) . '/functions.php';
于 2013-01-16T09:13:12.800 回答
0

尝试在 file.php 的顶部执行此操作

echo '<pre>';
print_r($_SERVER);
echo '</pre>';

搜索 $_SERVER['REQUEST_URI'] 以查看它指向的位置。

然后尝试包含您的functions.php,例如

include_once $_SERVER['REQUEST_URI'] . '/some-upper-folders/functions.php';

于 2013-01-16T09:15:16.770 回答