使用require_once

时间:2012-09-25 09:22:18

标签: php constants

我正在使用函数require_once,但在尝试运行页面时不断出错。尝试寻找其他地方,但似乎无法得到我的问题的精确答案。我的代码是:

    <?php
        require_once(ROOT_DIR . 'Pages/Page.php'); 
        require_once(ROOT_DIR . 'lib/Application/Authentication/namespace.php');

它给了我以下错误:

  

注意:使用未定义的常量ROOT_DIR - 在第3行的/opt/lampp/htdocs/myDiary/Pages/LoginPage.php中假定为“ROOT_DIR”

     

警告:require_once(ROOT_DIRPages / Page.php)[function.require-once]:无法打开流:第3行的/opt/lampp/htdocs/myDiary/Pages/LoginPage.php中没有此类文件或目录< / p>      

致命错误:require_once()[function.require]:在/ opt / lampp / htdocs / myDiary中打开所需的'ROOT_DIRPages / Page.php'(include_path ='。:/ opt / lampp / lib / php')失败/Pages/LoginPage.php在第3行。

请解释我的问题是什么,我没有编程很长时间。

6 个答案:

答案 0 :(得分:1)

您必须在顶部定义常量ROOT_DIR

define('ROOT_DIR', '/path/to/your/scripts/');

答案 1 :(得分:1)

错误信息中明确说明了这一点:

  • 您的常量ROOT_DIR未在脚本中的该位置定义,
  • 所以PHP无法找到相应的文件,
  • 会导致require_once()调用失败。

作为解决方案,请确保在使用之前设置ROOT_DIR。请参阅define()

答案 2 :(得分:1)

您收到此错误,因为您尚未定义目录

通过

定义
define('ROOT_DIR', '/path/to/your/scripts/');

答案 3 :(得分:0)

你应该首先定义ROOT_DIR ..就像这样:

define('ROOT_DIR', 'path');

答案 4 :(得分:0)

尝试DOCUMENT_ROOT

<?php 
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= 'Pages/Page.php';
  include_once($path);
?>

答案 5 :(得分:0)

认为这应该有效

require_once(__ROOT__.'Pages/Page.php'); 

有用的链接在这里:

http://php.net/manual/en/function.require-once.php