2017-02-26 24 views
0

私は何かに取り組んでおり、練習中であり、あまり経験はありません。私は名前空間を使用していますし、 'App \ Core'の下にある別のクラスと名前空間に 'App \ Diff'という名前の別のファイルを含める必要があります。 名前空間に名前の変数を使用する

namespace App\Core; 

class Test { 
    public function testFunc($file) { 
     require_once "../folder/" . $file . ".php"; 
     return new $file(); 
    } 
} 

すなわち、今クラス$ファイル内
namespace App\Diff; 

class Test2 { 
} 

私はリターン

new App\Diff . "\{$file()}"; 

のようなものを試してみましたが、私はエラー「クラスのApp \コード\アプリケーション\差分が見つかりませんしまりました。 .. "

+0

の最後の答えを見ることができます'? – frz3993

+0

クラスApp \ Diffが見つかりません。 – mishke

+0

'Test'クラスをどのようにインスタンス化し、' testFunc() 'を呼び出しますか? – frz3993

答えて

1

frz3993には、最初にあなたがアクセスできるよりもグローバルな領域に入っていることが記載されています。\App\Diffとあなたのクラス。 manual
第二の問題を参照してください私は、正しい解決策を持っていないが、あなたはcsga5000link新しい\アプリケーション\デフ `のように前面に別のバックスラッシュを置けば起こる何& manual

namespace App\Core; 

class Test { 
    public function testFunc($file) { 
     require_once "../folder/" . $file . ".php"; 
     $f = "\\App\\Diff\\".$file ; 
     return new $f; 
    } 
} 
+0

のインスタンスです。ありがとう、私はそれを読んで、私のプロジェクトを続けます。 – mishke