Php语法错误问题

时间:2011-07-14 05:46:00

标签: php syntax syntax-error

您好我有以下目录结构:

  

主文件夹 - >课程 - > user_classes

全部互相嵌套。我在 Classes目录

中有以下文件
always_include_top.php
custom_error_handler.php
config.php
database.php

其中database.php文件如下:

<?php
include_once("always_include_top.php");

include_once("config.php");
include_once("custom_error_handler.php");

include_once ("user_classes/newDatabase.php");

class Database extends newDatabase
{

// some more code... with extra functions
    public function dbBackUp($backupfile = NULL)
    {
        //code...
    }
}
?>

我在User user_classes目录

中有以下文件
  

newDatabase.php

此文件的代码示例为

<?php
include_once("../always_include_top.php");

include_once("../config.php");
include_once("../custom_error_handler.php");
error_reporting(E_ALL);

class newDatabase
{
   // my code goes here
}

?>

为什么我在 classes / database.php 中出现以下错误( classes / user_classes / newDatabase.php 中没有错误)

  

警告:include_once(../ always_include_top.php)   [function.include-once]:无法打开流:没有这样的文件或   目录   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第2行

     

警告:include_once()[function.include]:打开失败   '../always_include_top.php'包含在内   (include_path ='。; C:\ php \ pear')in   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第2行

     

警告:include_once(../ config.php)[function.include-once]:失败   打开流:没有这样的文件或目录   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第4行

     

警告:include_once()[function.include]:打开失败   '../config.php'包含(include_path ='。; C:\ php \ pear')in   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第4行

     

警告:include_once(../ custom_error_handler.php)   [function.include-once]:无法打开流:没有这样的文件或   目录   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第5行

     

警告:include_once()[function.include]:打开失败   '../custom_error_handler.php'包含在内   (include_path ='。; C:\ php \ pear')in   E:\ wamp \ www \ greeting_cards \ adm \ classes \ user_classes \ database.php on   第5行

     

致命错误:无法重新声明类数据库   第12行的E:\ wamp \ www \ greeting_cards \ adm \ classes \ database.php

我希望两个文件都能单独编译。因为我会根据页面类型将文件包含在其他文件中。包括在这里的问题是什么?

1 个答案:

答案 0 :(得分:1)

使用include_once()时,它不会更改为特定文件所在的目录并在其中执行,它会在当前文件的上下文中执行该文件的内容。因此,classes / user_classes / database.php就像在classes文件夹中一样执行。 “..”指的是那种情况下的Main文件夹,所以它正在寻找Main文件夹中的前三个文件。这些文件不在Main文件夹中,因此它会为您提供警告。