我有一个代码片段如下
echo "calling require";
require ('../includes/functions/database.php');
echo 'require called';
我的代码回应第一个命令并打印“需要调用。”
一旦命中需要函数我的代码中断并且不再执行,因此我不打印最后一个回显“require called”
可能的原因是什么?
答案 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
,因为它会生成警告而不是致命错误。