Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP致命错误:找不到类_Php_Classloader_Require_Require Once - Fatal编程技术网

PHP致命错误:找不到类

PHP致命错误:找不到类,php,classloader,require,require-once,Php,Classloader,Require,Require Once,我有一个很奇怪的问题。我有一门课叫“SMSNotifier” 此类包含在从cli调用的另一个脚本中。调用此脚本时,我得到 PHP Fatal error: Class 'InvitationNotifier' not found in [...]/include/classi/notifiche/notifiers/SMSNotifier.php on line 12 奇怪的是,如果我用require替换require_一次,我会得到一个require PHP Fatal error: C

我有一个很奇怪的问题。我有一门课叫“SMSNotifier”

此类包含在从cli调用的另一个脚本中。调用此脚本时,我得到

PHP Fatal error:  Class 'InvitationNotifier' not found in [...]/include/classi/notifiche/notifiers/SMSNotifier.php on line 12
奇怪的是,如果我用require替换require_一次,我会得到一个require

PHP Fatal error:  Cannot redeclare class InvitationNotifier in [...]/include/classi/notifiche/InvitationNotifier.php on line 11
这里可能有什么问题


事先谢谢你的任何想法。我已经用完了…

我一直在努力理解这个问题,我发现存在循环依赖。我已经“删减”了,问题就没有了。希望这能帮助某人

你不应该像1990年那样加载文件。使用(PHP)并遵循PSR-4

composer.json

{
  "autoload": {
    "psr-4": {"InvitationNotifier\\": "lib/"}
  }
}
index.php

require_once('autoload.php');

InvitationNotifier.php
中是否有
InvitationNotifier
类?它使用名称空间吗?是的,它使用名称空间,不使用名称空间。抽象类InvitationNotifier实现通知程序{}当您使用类的绝对路径时会发生什么情况?您是否将任何需求像函数或类一样放置在容器中?我不知道这个场景会怎样:在一个函数中,您需要\u once InvitationNotifier。它包括在内,函数结束。现在,在函数之外,您再次需要它。它已经是必需的,但类定义包含在函数中,因此在您尝试使用它时它不存在。更改为require将定义函数中的类(一个define)和函数外的类(第二个define-error)。实际上require/require\u一次在类定义之外,在任何函数之外。我不明白你的意思,如果你能详细说明一下的话
require_once('autoload.php');