Php require()无法识别别名类

Php require()无法识别别名类,php,php-closures,Php,Php Closures,这主要是由我的代码结构引起的: File1.php use \Class1 as Blah; require 'File2.php'; File2.php $closure = function ($arg) { return new Blah($arg); }; 不知何故,背后的部分。。。使用require()后无法识别as 未被代码识别-Slim不是编译器,它是一个框架 代码将按照PHP编译器标准执行,因此使用默认值 use SomeNamespace\SomeClass as

这主要是由我的代码结构引起的:

File1.php

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

$closure = function ($arg) {
    return new Blah($arg);
};
不知何故,
背后的部分。。。使用
require()
后无法识别as

未被代码识别-Slim不是编译器,它是一个框架

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

use SomeNamespace\SomeClass as SomePrefix;
无论你想达到什么目标,都会成功。
require\u once()
方法加载包含该类的PHP文件,我假设该类没有自定义名称空间,因为您的目标是
\
目录

如果您在类中工作,那么这可能是您的问题,在使用
require\u once()
加载到
ParseMarkdownClass
文件中后,您的代码应该与此类似

use ParseMarkdownClass as Md;

class SomeClass
{
    public $container;

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

(new SomeClass())->$container->m()->...
未被代码识别-Slim不是编译器,它是一个框架

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

use SomeNamespace\SomeClass as SomePrefix;
无论你想达到什么目标,都会成功。
require\u once()
方法加载包含该类的PHP文件,我假设该类没有自定义名称空间,因为您的目标是
\
目录

如果您在类中工作,那么这可能是您的问题,在使用
require\u once()
加载到
ParseMarkdownClass
文件中后,您的代码应该与此类似

use ParseMarkdownClass as Md;

class SomeClass
{
    public $container;

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

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

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

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

如果您需要匿名函数作用域之外的文件,则开发人员可以在该环境中以任何方式访问该文件,那么您想要实现什么?@KDOT让我编辑一下,我已经发现,这与斯利姆本身无关。这是因为使用“require()”包含的代码无法识别“use SomeClass as\other”这一事实造成的。如果您需要匿名函数作用域之外的文件,那么开发人员可以在该环境中以任何方式访问该文件,那么您想实现什么?@KDOT让我编辑一下,我已经发现,这与斯利姆本身无关。这是因为使用“require()”包含的代码无法识别“use SomeClass as\other”这一事实造成的。我不知道您是如何如此轻松地表达这一点的+谢谢!我刚刚发现了另一个问题,显然我只是不知道我到底在寻找什么。如果我想一想的话,用这种方式来处理是很有道理的我不知道你怎么这么容易地用词+谢谢!我刚刚发现了另一个问题,显然我只是不知道我到底在寻找什么。如果我想一想,用这种方式处理它是非常有意义的