所以主要是這是由我的代碼結構造成的: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