包含时找不到PHP类

时间:2013-12-21 21:26:07

标签: php class static-members

我遇到了PHP中无法找到的类的问题。

我做的第一件事就是'require_once'一个'require_once'所有其他文件的文件。加载时,没有出现任何问题。但是当我开始调用我的函数(Users :: verificate();)时,我收到以下错误:

Fatal error: Class 'Users' not found in /Applications/XAMPP/xamppfiles/htdocs/sparks/dashboard.php on line 4

为了测试,我添加了一个带有函数的简单类,该函数仅使用echo方法输出字符串。这样可以解决这个问题。我称之为MySql的函数就可以了。

$mySql = new MySql();
$mySql->executeQuery('...');

简单类有一个静态的静态函数,我这样称呼(哦,这样可行):

simple::launch();

在Users类中,我从静态函数调用MySql类中的非静态函数。这可能是问题吗?

就像SO上的另一个问题提出的问题不是使用短的php开放标签而不是传统的php开放标签。

即使是一点点暗示也可以帮助我:)。谢谢你的时间!

修改 我在User类中添加了一些相关代码。这基本上就是这样:

<?php
class Users {
    public static function authenticate($email, $password) {
        $mySql = new MySql();

        $mySqlResult = $mySql->executeQuery("selectUser", [$email]);

        ...
    }

    public static function isAdmin() {
        if ($_SESSION['isAdmin']) {
            return true;
        }
        return false;
    }
    ...
}

编辑2: 我正试着展示流程: 从dashboard.php这是第一个代码行:

<?php
    require_once('code/init.php');
    simple::launch();
    if (!Users::verify()) {
        header("Location: index.php");
    }
?>

简单::发射();是我用来测试的代码。这执行得很好。从此开始,init.php文件如下所示:

<?php
session_start();

require_once('simple.php');
require_once('MySql.php');
require_once('Users.php');
require_once('Projects.php');

文件名是正确的,因为当出现错误时我会收到可见的错误。

dashboard.php存在于根目录中。从那里有一个名为'code'的文件夹,其中包含所有这些文件。

1 个答案:

答案 0 :(得分:0)

@MbRostami在评论中给出了建议,使用'get_required_files()'函数来查看包含哪些文件。事实证明,加载了错误的文件。

Root
| dashboard.php
| users.php
|- code
 | Users.php
 | init.php

在init.php文件中,需要Users.php文件(两个文件都在代码文件夹中)。但由于某种原因,加载了root的users.php文件。一些奇怪的行为imho。啊,这是在圣诞节期间要调查的事情。

问题解决了!谢谢!