require_once and include_once not resolving files correctly

南笙酒味 提交于 2019-12-07 02:43:29

require_once is a language construct. It is not a function and has no return value.

Brackets around the file name parameter are optional. This seems to mean that in this line:

require_once('system/application/shared/config/database.php') 
             or die("Cannot Include Language Config");

the whole expression

('system/application/shared/config/database.php') 
 or die("Cannot Include Language Config");

is evaluated (returning 1) and used as the file name argument. 1, obviously, doesn't exist.

What you are doing doesn't make real sense though, because include will not return false when loading a file fails. require_once() will terminate the script's execution anyway. If you take care of switching of error reporting in your production environment, you could easily live with a PHP Fatal Error telling you the file doesn't exist (instead of your custom die()).

If you need to gracefully exit the script, I would do a file_exists call before the statement, and die() when that fails:

$file = 'system/application/shared/config/database.php';

if ((!is_file($file)) or(!is_readable($file)))
   die("Cannot Include Language Config");

require_once('system/application/shared/config/database.php');
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!