PHP代码打破调用require函数

时间:2012-01-17 09:04:38

标签: php require

我有一个代码片段如下

echo "calling require";
require ('../includes/functions/database.php');
echo 'require called';

我的代码回应第一个命令并打印“需要调用。”

一旦命中需要函数我的代码中断并且不再执行,因此我不打印最后一个回显“require called”

可能的原因是什么?

5 个答案:

答案 0 :(得分:4)

让php显示错误消息,您会很快发现错误。

在require

之前添加这些行
ini_set('display_errors', true);
error_reporting(E_ALL);

答案 1 :(得分:0)

所需文件:

  • 不存在
  • 存在,但您的相对路径与其位置不匹配
  • 不可读
  • 本身有语法错误

任何一个都可能是原因。

答案 2 :(得分:0)

必须禁止使用相对路径在PHP中请求文件。相对路径取决于浏览器首先调用的PHP文件。总是使用绝对路径来要求或包含文件。

答案 3 :(得分:-1)

该文件可能存在但可能无法读取。使用is_readable()进行检查:

if(is_readable('../includes/functions/database.php')) {
   echo('ok!');
}

此外,database.php文件中可能存在错误或die(),这会阻止进一步执行。检查database.php是否有错误以及die / exit来电。


在您的scipt开头添加error_reporting(E_ALL); ini_set('display_errors', 'On');以调试错误,如Salman A在评论中所建议的那样。

答案 4 :(得分:-1)

如果您只是希望执行代码,无论require是否有效,您都可以使用include代替require,因为它会生成警告而不是致命错误。