所以主要是这是由我的代码结构造成的:PHP的需要()不能识别别名类
File1.php
use \Class1 as Blah;
require 'File2.php';
File2.php
$closure = function ($arg) {
return new Blah($arg);
};
不知背后的部分... as
在使用require()
后未被识别。
所以主要是这是由我的代码结构造成的:PHP的需要()不能识别别名类
File1.php
use \Class1 as Blah;
require 'File2.php';
File2.php
$closure = function ($arg) {
return new Blah($arg);
};
不知背后的部分... as
在使用require()
后未被识别。
命名空间别名是只在你写的use
声明文件中的有效。别名不会跨文件边界传输。如果您想要在File2.php中使用use Class1 as Blah
,则需要将该语句放在File2.php的顶部。
包含的代码无法识别“使用SomeClass作为\ Another”这一事实造成的,我不知道您如何轻松地措词...... +1 – KDOT
谢谢!我刚刚发现了另一个问题,显然我不知道我究竟在寻找什么。如果我考虑一下,这样处理它就非常合理 – RegisteredUser
不是由代码认可 - 斯利姆是不是一个编译器,它是一个框架。
该代码将执行到PHP编译器标准,因此使用默认值。
use SomeNamespace\SomeClass as SomePrefix;
将工作无论你想达到的目标。 require_once()
方法会加载您的PHP文件来保存该类,因为您的目标是\
目录,所以我假设它没有自定义名称空间。
如果你在一个班级内部工作,那么这可能是你的问题,在使用require_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()->...
如果您要求文件超出匿名函数的范围,那么您可以通过该环境中的开发人员访问该文件,以便您试图实现哪种功能? – KDOT
@KDOT让我编辑这个,我已经发现,这不是一个与Slim本身有关的问题。我是由于使用“require()” – RegisteredUser