cari

Rumah  >  Soal Jawab  >  teks badan

Apabila PHP menggunakan ruang nama, mengapakah ia harus tepat kepada kelas di bawah ruang nama?

Kod di bawah fail Tool.class.php ialah:

ruang nama Alat Syarikat;

kelas Alat{

}

Soalan saya ialah mengapa jika anda menggunakan kelas Alat dalam fail lain, anda mesti menulis seperti ini: gunakan CompanyToolTool

Saya fikir sudah cukup untuk menulis menggunakan CompanyTool (apa yang saya faham bermakna anda boleh menggunakan mana-mana kelas dalam ruang ini).
Saya harap semua orang boleh beritahu saya, terima kasih.

曾经蜡笔没有小新曾经蜡笔没有小新2736 hari yang lalu659

membalas semua(3)saya akan balas

  • 巴扎黑

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

    C++ mempunyai apa yang anda mahukanusing namespace xxx.

    Mengapa PHP tidak memperkenalkan keseluruhan ruang nama secara langsung Ini mungkin diketahui oleh mereka yang terlibat dalam reka bentuk.

    Saya rasa sebabnya adalah untuk mengelak daripada memperkenalkan terlalu banyak perkara yang tidak perlu sekaligus tidak digalakkan dalam pelbagai bahasa.

    balas
    0
  • ringa_lee

    ringa_lee2017-06-06 09:55:57

    1. Tepat ke kelas boleh meningkatkan prestasi. Jika ia hanya tepat untuk direktori tertentu, setiap kali kelas dimuatkan, pengkompil masih perlu pergi ke direktori untuk mencari sama ada kelas itu wujud.

    2. Tepat kepada kelas untuk mengelakkan konflik Jika nama kelas yang sama wujud dalam dua direktori, jika ia tepat kepada kelas, konflik boleh dielakkan dengan baik.

    3. Mudah untuk dioptimumkan, C# mempunyai ciri-ciri yang disebut oleh poster, tetapi C# disusun terus ke dalam fail boleh laku, tetapi Java menggunakan pendekatan kelas-tepat, kedua-duanya adalah bahasa yang ditafsirkan, dan faedah ini bermanfaat untuk peringkat seterusnya . Pengoptimuman tafsiran membolehkan kelas ditemui dengan tepat dan mengurangkan penggunaan cache.

    balas
    0
  • PHPz

    PHPz2017-06-06 09:55:57

    Anda boleh menggunakan kelas atau ruang nama

    namespace A;
    class B
    {
        public function test() {}
    }

    Petikan

    namespace C;
    use A;
    $b = new A\B();
    $b->test();

    atau

    namespace C;
    use A\B;
    $b = new B();
    $b->test();

    Jika anda menulis seperti itu, ia pasti akan membiarkan autoload找不到这个文件。如果是手动载入文件的,从命名空间的理解出发也必须要那样写。而且我觉得提问的那个排版应该是namespace CompanyTool;

    balas
    0
  • Batalbalas