検索

ホームページ  >  に質問  >  本文

PHP が名前空間を使用する場合、なぜ名前空間の下のクラスに対して正確である必要があるのでしょうか?

Tool.class.php ファイルのコードは次のとおりです:

名前空間 CompanyTool;

クラス ツール{

}

私の質問は、他のファイルで Tool クラスを使用する場合、次のように書かなければならない理由です: use Company\Tool\Tool

use Company\Tool と書くだけで十分だと思いました (私が理解しているのは、この領域で任意のクラスを使用できることを意味します)。
教えていただければ幸いです、ありがとうございます。

曾经蜡笔没有小新曾经蜡笔没有小新2736日前656

全員に返信(3)返信します

  • 巴扎黑

    巴扎黑2017-06-06 09:55:57

    C++ にはあなたが望むものがありますusing namespace xxx

    なぜ PHP は名前空間全体を直接導入しないのでしょうか? これは設計に携わった人だけが知っているでしょう。

    いろいろな言語で一括導入が推奨されていないのは、一度にたくさんの不要なものを導入することを避けるためだと思われます。

    返事
    0
  • ringa_lee

    ringa_lee2017-06-06 09:55:57

    1. クラスに正確であれば、パフォーマンスを向上させることができます。特定のディレクトリに対してのみ正確である場合、クラスがロードされるたびに、コンパイラは依然としてそのディレクトリに移動して、クラスが存在するかどうかを確認する必要があります。

    2. 競合を避けるためにクラスに対して正確である同じクラス名が 2 つのディレクトリに存在する場合、クラスに対して正確である場合、競合は非常にうまく回避できます。

    3. 最適化が簡単、C# には投稿者が言及した機能がありますが、C# は実行可能ファイルに直接コンパイルされますが、Java はクラス精度のアプローチを採用しており、どちらもインタープリター言語であり、この利点は後の段階のインタープリテーションに有益です。最適化により、クラスを正確に検出できるようになり、キャッシュの消費が削減されます。

    返事
    0
  • PHPz

    PHPz2017-06-06 09:55:57

    クラスまたは名前空間を使用できます

    リーリー

    引用

    リーリー

    または

    リーリー

    そんな風に書けば間違いなくautoload找不到这个文件。如果是手动载入文件的,从命名空间的理解出发也必须要那样写。而且我觉得提问的那个排版应该是namespace CompanyTool;そう

    返事
    0
  • キャンセル返事