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 的顶部。
所以这主要是我的代码结构造成的:
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 的顶部。