Ruang nama dalam PHP adalah serupa dengan ruang nama dalam C++ yang merangkum item dengan menggunakan semula nama untuk mengelakkan konflik nama. Ia juga dilihat sebagai konsep abstrak dalam banyak situasi. Ia membenarkan pengisytiharan semula kelas atau antara muka atau fungsi atau fungsi malar yang sama dalam ruang nama yang berbeza tanpa menerima ralat maut. Ruang nama ini ialah blok kod yang dilabel secara hierarki yang memegang kod PHP biasa. Ia terdiri daripada kod PHP yang sah. Selain itu, ia mempengaruhi jenis kod seperti kelas, fungsi, pemalar dan antara muka. Ruang nama diisytiharkan menggunakan ruang nama kata kunci.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks:
namespace sample;
Di sini, sampel ruang nama diisytiharkan.
Sama seperti pengecam PHP lain, ruang nama juga harus mengikut beberapa peraturan. Iaitu, ruang nama hendaklah bermula dengan garis bawah atau huruf, diikuti dengan huruf, garis bawah atau nombor.
Mari kita bayangkan ruang nama sebagai almari di mana kita boleh menyimpan semua barangan seperti pakaian, aksesori, dll. Bagi setiap orang, akan ada almari berasingan yang boleh menyimpan barang mereka. Untuk mengenal pasti almari setiap orang, label boleh diberikan kepada setiap daripada mereka supaya sebarang kekeliruan tidak akan berlaku. Pada masa lalu, pengaturcara mengasingkan asas kod menggunakan garis bawah dalam pemalar, kelas dan fungsi. Ia sama seperti melabelkan barang semua orang dan menyimpannya di dalam almari besar. Walaupun ia teratur, kecekapan tidak akan lebih tinggi.
Dalam situasi ini, konsep ruang nama muncul. Kelas, antara muka, fungsi dan pemalar yang sama boleh diisytiharkan dalam ruang nama yang berbeza tanpa sebarang ralat maut. Pada asasnya, ruang nama ialah blok kod yang dilabel secara hierarki yang memegang kod PHP biasa.
Seperti yang telah kami nyatakan, ruang nama dalam PHP merangkum item dengan menggunakan semula nama untuk mengelakkan konflik nama.
Sebagai contoh, pertimbangkan program PHP seperti yang dinyatakan di bawah.
Kod:
<?php namespace sample ; function func() { echo ' Never give up! Keep trying . . . ' ; } // Resolves to the function func() ; ?>
Ia boleh dilihat bahawa fungsi fungsi hadir dan ia mencetak teks semasa melaksanakan kod.
Apabila saiz pustaka kod PHP meningkat, terdapat peluang untuk menggunakan semula nama atau fungsi kelas yang telah diisytiharkan secara tidak sengaja. Isu ini menjadi lebih teruk jika komponen dan pemalam pihak ketiga ditambahkan. Selain itu, isu perlanggaran nama boleh diselesaikan dengan bantuan ruang nama. Pemalar PHP, fungsi dan kelas boleh dikumpulkan bersama ke dalam perpustakaan ruang nama. Ruang nama ini boleh mengikut hierarki tertentu, serupa dengan folder yang tersedia dalam sistem fail pada komputer. Konsep, Sub-ruang nama, sangat berguna untuk mengatur struktur projek. Jika projek memerlukan akses pangkalan data, semua kod yang berkaitan dengan pangkalan data, seperti pengecualian pangkalan data, pengendali sambungan, boleh disimpan dalam ruang kecil yang dipanggil DB.
Untuk mengekalkan fleksibiliti, adalah lebih baik untuk menyimpan sub-ruang nama dalam sub direktori. Ini memberi inspirasi kepada penstrukturan projek serta memudahkan penggunaan pemuat automatik yang mengikut piawaian PSR-0.
Biasanya, garis miring ke belakang akan digunakan dalam PHP sebagai pemisah ruang nama.
SampleSub Sampel
SampleSubSampleSamp
CollegeProjCommonWidget
Dalam kes di mana pengisytiharan ruang nama dilakukan secara global, ia boleh diisytiharkan tanpa menggunakan sebarang nama, seperti yang ditunjukkan di bawah.
Kod:
<?php namespace { // Global . . . ! } ?>
Dalam sesetengah kes, berbilang ruang nama boleh digunakan dalam satu kod PHP, seperti yang ditunjukkan di bawah.
Kod:
<?php namespace sam { } namespace samp { } namespace { } ?>
Kod:
<?php echo "Never Give up ! " ; namespace Html ; . . . ?>
Diberikan di bawah adalah contoh ruang nama PHP:
Atur cara PHP yang menggunakan ruang nama dan memanggil fungsi secara tersirat dan tersurat.
Kod:
<?php namespace sample; function func() { echo 'Never give up! Keep trying. . .'; } // Resolves to the function func(); // Explicitly resolves to the function namespace\func(); ?>
Output:
Dalam program, sampel ruang nama dibuat terlebih dahulu. Selepas itu, ia boleh dilihat bahawa fungsi fungsi ditakrifkan, dan ia mencetak teks semasa melaksanakan kod. Memandangkan fungsi itu dipanggil secara tersirat dan eksplisit, teks akan dicetak dua kali.
Andaikan ruang nama diisytiharkan selepas mentakrifkan fungsi, seperti ditunjukkan di bawah. Kemudian, apa yang akan berlaku?
Kod:
<?php function func() { echo 'Never give up! Keep trying. . .'; } // Resolves to the function func(); namespace sample; // Explicitly resolves to the function namespace\func(); ?>
Yes…. An error will be displayed, as shown below. That is, namespace should be defined at the beginning of the program.
Output:
PHP program that uses a namespace and calls a function for printing table details.
Code:
<?php namespace Html; class sampletable { public $heading= ""; public $cntrows= 0; public function fnc() { echo "<p> The Table used is '{$this->heading}' that has {$this->cntrows} different rows. . . .</p>"; } } $tb= new sampletable (); $tb->heading= " Students "; $tb->cntrows= 8 ; ?> <!DOCTYPE html> <html> <body> <?php $tb->fnc(); ?> </body> </html>
Output:
In the program, a namespace Html is created first. After that, a class sampletable is created with variables heading, cnt rows. A function func is also present, which contains a text. Heading students and 8 as count of rows were given after that. On executing the code, the line gets printed with the table name and number of rows.
Namespaces in PHP is similar to namespaces in C++ that encapsulates items by reusing names in order to avoid name conflicts. In this article, different aspects such as syntax, working, and examples of size() functions are explained in detail.
Atas ialah kandungan terperinci Ruang nama PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!