Php require()无法识别别名类
这主要是由我的代码结构引起的: File1.phpPhp 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
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”这一事实造成的。我不知道您是如何如此轻松地表达这一点的+谢谢!我刚刚发现了另一个问题,显然我只是不知道我到底在寻找什么。如果我想一想的话,用这种方式来处理是很有道理的我不知道你怎么这么容易地用词+谢谢!我刚刚发现了另一个问题,显然我只是不知道我到底在寻找什么。如果我想一想,用这种方式处理它是非常有意义的