【发布时间】:2019-04-26 07:23:01
【问题描述】:
我收到以下错误:
`Fatal error: Class 'DummyClass' not found in...`
<?php
require_once("3rdparty/simplesaml/lib/_autoload.php");
class login extends DummyClass { (this is the line the error refers to)
[...]
}
?>
如果我将require_once 注释掉,它就可以正常工作。
DummyClass 是在外部定义的,可以在 prepend-file 中找到。 (我认为这个问题并不重要,因为如果我注释掉require_once,它会按预期工作)
文件的路径也应该正确,因为如果我更改路径,它会给我一个“需要打开失败...”错误。
我也尝试在 PHP 5.6 和 7 之间切换 - 没有区别。
所以,我想请你帮忙。您有任何提示/想法,为什么我可能会收到该错误?
【问题讨论】:
-
这听起来可能是命名空间的问题。
DummyClass定义在哪个命名空间中,您的脚本现在在哪个命名空间中?如果DummyClass在默认命名空间中,extends \DummyClass有帮助吗? -
另一件要问的问题 - 在包含 simplesaml 自动加载之前,您是否已经使用了自动加载功能?
-
是的,前置文件包含
function __autoload($classname){。\DummyClass没有帮助。虽然,我只是想弄清楚名称空间。因为它是“DummyClass”背后的一个完整框架,所以要回显一些东西并不容易。 -
__NAMESPACE__ 不包含任何内容,无论是否包含有问题的行。
标签: php class require-once