Php require() 无法识别别名 class

Php require() does not recognize aliased class

所以这主要是我的代码结构造成的:

File1.php

use \Class1 as Blah;
require 'File2.php';

File2.php

$closure = function ($arg) {
    return new Blah($arg);
};

使用 require() 后,... as 后面的部分无法识别。

is not recognized by the code - Slim is not a compiler, it is a framework.

代码将按照 PHP 编译器标准执行,因此使用默认值。

use SomeNamespace\SomeClass as SomePrefix;

无论您想要实现什么,它都会奏效。 require_once() 方法加载包含 class 的 PHP 文件,我认为它没有自定义命名空间,因为您的目标是 \ 目录。

如果您在 class 中工作,那么这可能是您的问题,在使用 require_once() 加载 [=15] 之后,您的代码应该 运行 类似于此=] 文件.

use ParseMarkdownClass as Md;

class SomeClass
{
    public $container;

    public function __construct()
    {
        $this->container = (object)['m' => function() {
            return new Md();
        }];
    }
}

(new SomeClass())->$container->m()->...

命名空间别名仅在您编写 use 语句的文件中有效。别名不会跨文件边界传输。如果您想 use Class1 as Blah 在 File2.php 内,您需要将该语句放在 File2.php 的顶部。