Apabila PHP menggunakan ruang nama, mengapakah ia harus tepat kepada kelas di bawah ruang nama?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-06 09:53:57
0
3
668

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.

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(3)
巴扎黑

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.

左手右手慢动作
  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.

PHPzhong

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;

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan