0

Guzzle フレームワークを使用する AWS ドキュメントに取り組んでいます。ここで名前空間を処理する必要があり、それを機能させることができません。ドキュメントと例を調べて、名前空間を使用するプロジェクトのパッケージを作成できることを理解しました。

簡単な例を試してみましたが、うまくいきませんでした。例を次に示します。これは次のindex.phpとおりです。

     use My\Full\Classname as Another;  //Also tried use My\Full\Classname
     $obj = new Another;                //with  $obj = new Classname;    
     echo $obj->add();

私は次Classname.phpのようなディレクトリ構造を持っていますMy->Full->Classname.php:

     <?php
        class Classname{
        public static function add(){
                return 2+2;
            }
         }
     ?>

関数を呼び出そうとしていますindex.phpが、エラーが発生しています:

Fatal error: Class 'Another' not found in C:\wamp\www\guzzleEx\index.php on line 19

これは Classname オブジェクトをインスタンス化する行です $obj = new Another;

私が犯している間違いは何ですか?INI更新する必要があるものやその他の構成の問題はありますか? コードを機能させるにはどうすればよいですか? includeClassname.php に通常を使用すると、正常に動作します。

4

1 に答える 1

1

名前空間は明示的に宣言する必要があり、特定のディレクトリ構造に由来するものではありません。

したがってnamespace My\Full;、 の前に読み取る行がない場合class Classname、クラスはどの名前空間にもありませんが、ルート名前空間にあります。

したがって、として使用することはできません\My\Full\Classnameが、直接使用すること\Classnameもできません。Classname

于 2013-09-20T06:47:09.277 に答える