Php语法错误问题
嗨,我有以下目录结构:
主文件夹 - >类 - > 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中得到以下错误( 类/ user_classes / newDatabase.php中没有错误)
警告:include_once(../ always_include_top.php)[function.include-once]:无法打开流:E: wamp www greeting_cards adm classes user_classes database.php中没有这样的文件或目录。 2
警告:include_once()[function.include]:在E: wamp www greeting_cards adm classes中打开用于包含(include_path ='.; C: php pear')的'../always_include_top.php'失败第2行的 user_classes database.php
警告:include_once(../ config.php)[function.include-once]:无法打开流:E: wamp www greeting_cards adm classes user_classes database.php中没有这样的文件或目录。 4
警告:include_once()[function.include]:在E: wamp www greeting_cards adm classes中打开用于包含(include_path ='.; C: php pear')的'../config.php'失败第4行的 user_classes database.php
警告:include_once(../ custom_error_handler.php)[function.include-once]:无法打开流:E: wamp www greeting_cards adm classes user_classes database.php中没有这样的文件或目录五
警告:include_once()[function.include]:无法在E: wamp www greeting_cards adm classes中打开包含(include_path ='.; C: php pear')的'../custom_error_handler.php'第5行的 user_classes database.php
致命错误:无法在第12行的E: wamp www greeting_cards adm classes database.php中重新声明类数据库
我希望两个文件都能单独编译。 因为我会根据页面类型将文件包含在其他文件中。 这里包括什么问题?
当使用include_once()
,它不会更改到特定文件所在的目录并在那里执行它,它会在当前文件的上下文中执行该文件的内容。 所以,类/ user_classes / database.php就像在classes文件夹中一样执行。 “..”指的是在这种情况下的主文件夹,所以它正在查找主文件夹中的前三个文件。 这些文件不在主文件夹中,因此会给出警告。