Rumah > Artikel > pembangunan bahagian belakang > Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP
Artikel ini akan memperkenalkan kepada anda cara PHP mengisytiharkan ruang nama, tiga cara untuk mengakses elemen ruang dan cara memperkenalkan ruang nama.
1.1 Pengenalan
Dalam projek besar, anda mungkin menghadapi kelas, fungsi dan pemalar dengan nama yang sama Untuk membezakan elemen ini, kami boleh menyimpan elemen ini dalam ruang nama yang berbeza. 1. Ruang nama ialah pakej, digunakan untuk menyimpan kelas, fungsi dan pemalar dalam projek 2. Gunakan kata kunci ruang nama untuk mengisytiharkan ruang nama
1.2 Isytihar ruang nama
Contoh:
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); ?>
Kesan :
Gunakan 命名空间
untuk memasukkan ruang nama dan kaedah panggilan.
Contoh:
<?php namespace China; // 定义命名空间 function getInfo () { echo '我是中国人'; } getInfo(); namespace USA; // 定义命名空间 function getInfo () { echo '我是美国人'; } getInfo(); \China\ getInfo(); ?>
Kesan:
1.3 Ruang nama berbilang peringkat
Nama ruang nama boleh berbilang peringkat (ruang nama sub-peringkat) Contohnya:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi'; } getInfo(); // 非限定名称访问 namespace USA\Washington; // 定义命名空间 function getInfo () { echo 'USA\Washington'; } \USA\Washington\ getInfo(); // 完全限定名称访问 ?>
Kesan:
1.4 Tiga cara untuk mengakses elemen angkasa
1. Akses nama tidak layak 2. Akses nama yang layak sepenuhnya 3. Akses nama terhad Contoh:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi'; } namespace China\Beijing; // 定义命名空间 function getInfo () { echo 'China\Beijing'; } getInfo(); // 非限定名称访问 \China\Beijing\getInfo(); // 完全限定名称访问 Shunyi\getInfo(); // 限定名称访问 ?>
Kesan:
melalui use
ruang nama
Elemen capaian nama yang layak sepenuhnya
Peraturan penyambungan untuk memperkenalkan ruang nama
Ruang awam memperkenalkan ruang (buang bahagian awam, bahagian awam hanya boleh ditinggalkan satu tahap) elemen ruang
Contoh:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 function getInfo () { echo 'China\Beijing\Shunyi<br>'; } namespace China\Beijing; // 定义命名空间 function getInfo () { echo 'China\Beijing<br>'; } use China\Beijing\Shunyi; getInfo(); Shunyi\getInfo(); ?>
Kesan:
2.1 Memperkenalkan elemen ruang
Memperkenalkan kelas: gunakan Perkenalkan fungsi: gunakan fungsi Perkenalkan pemalar: gunakan const Contoh:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 class Student { } function getInfo() { echo 'jdk'; } const TYPE = 'CONST'; namespace USA; // 定义命名空间 // 引入类 use China\Beijing\Shunyi\Student; $stu = new Student(); var_dump($stu); echo '<br>'; // 引入函数 use function China\Beijing\Shunyi\getInfo; getInfo(); echo '<br>'; // 引入常量 use const China\Beijing\Shunyi\TYPE; echo TYPE; ?>
Kesan:
2.2 Nama alias untuk kelas dan fungsi
Jika kelas dan fungsi yang diperkenalkan mempunyai nama yang sama seperti dalam ruang semasa, anda perlu memberikan alias kelas dan fungsi yang diperkenalkan. Gunakan alias sebagai Contoh:
<?php namespace China\Beijing\Shunyi; // 定义命名空间 class Student { } namespace USA; // 定义命名空间 class Student { } use China\Beijing\Shunyi\Student as ChinaStudent; $stu=new Student; var_dump($stu); echo '<br>'; $stu1=new ChinaStudent; var_dump($stu1); ?>
Kesan:
2.3 Ruang Awam
Jika Halaman tidak mempunyai ruang pengisytiharan ruang nama Elemen halaman ini berada di ruang awam.
Ruang awam diwakili oleh
Contoh:
<?php function getInfo() { echo '李白<br>'; } \getInfo(); ?>
Kesan:
2.4 Pertimbangan ruang nama
1 . Ruang nama hanya boleh menyimpan kelas, fungsi dan pemalar const. 2. Tidak boleh ada sebarang kod di hadapan ruang nama pertama, termasuk aksara kosong dan pengepala(). 3. Fail yang disertakan tidak menjejaskan ruang nama semasa.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!