我遇到了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'的文件夹,其中包含所有这些文件。
答案 0 :(得分:0)
@MbRostami在评论中给出了建议,使用'get_required_files()'函数来查看包含哪些文件。事实证明,加载了错误的文件。
Root
| dashboard.php
| users.php
|- code
| Users.php
| init.php
在init.php文件中,需要Users.php文件(两个文件都在代码文件夹中)。但由于某种原因,加载了root的users.php文件。一些奇怪的行为imho。啊,这是在圣诞节期间要调查的事情。
问题解决了!谢谢!