Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ruang nama PHP

Ruang nama PHP

王林
王林asal
2024-08-29 13:00:16774semak imbas

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-olok

Mulakan 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.

Bagaimana ruang nama berfungsi dalam PHP?

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 {
}
?>
Nota: Perlu diingatkan bahawa ruang nama perlu diisytiharkan terlebih dahulu dalam program PHP. Jika mana-mana kod diberikan di bawah, ia akan dikesan sebagai tidak sah kerana ruang nama tidak diberikan pada mulanya.

Kod:

<?php
echo "Never Give up ! " ;
namespace Html ;
. . .
?>

Contoh ruang nama PHP

Diberikan di bawah adalah contoh ruang nama PHP:

Contoh #1

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:

Ruang nama PHP

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:

Ruang nama PHP

Example #2

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:

Ruang nama PHP

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.

Conclusion

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP substrArtikel seterusnya:PHP substr