我只是想在我的本地运行一个从服务器复制的网站。在我的config.php
:
define ( 'DB_SERVER', '127.0.0.1' );
define ( 'DB_USERNAME', 'user' );
define ( 'DB_PASSWORD', 'password' );
define ( 'DB_DATABASE', 'database' );
class DB_Class {
function __construct() {
$connection = mysql_connect ( DB_SERVER, DB_USERNAME, DB_PASSWORD ) or die ( 'Connection error -> ' . mysql_error () );
mysql_select_db ( DB_DATABASE, $connection ) or die ( 'Database error -> ' . mysql_error () );
}
}
在我的user.php
:
include_once 'config.php';
class User {
// Database connect
public function __construct() {
$db = new DB_Class ();
}
}
在我的index.php
:
session_start ();
include_once ('classes/user.php');
$uobj = new User ();
现在,每当我尝试创建类User
的对象时,它都会在我尝试的行上返回一个Fatal error: Class 'DB_Class' not found
,在本例中为第 6 行。虽然它在服务器上工作得很好。
我试图将类User
扩展到类DB_Class
但随后在我尝试扩展的行上再次出现相同的错误。
有人请指出问题所在。谢谢。
您的网站结构似乎是使用名为 classes 的文件夹中的两个类文件设置的。 正如此链接所建议的,包含中的相对路径很少顺利,因为它是用于所有包含(包括其他包含文件中的包含)的调用脚本路径。 除非您在路径中指定了类文件夹,否则 index.php 将不知道 config.php 文件在哪里。 您应该在用户.php文件中执行此操作。
include_once $_SERVER['DOCUMENT_ROOT'] . '/classes/config.php';
或使用
require_once dirname(__FILE__) . '/config.php';
任何一个都将删除相对链接,并允许将文件包含在目录结构中的任何位置。