Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

青灯夜游
Lepaskan: 2023-04-10 12:02:02
ke hadapan
3438 orang telah melayarinya

Artikel ini akan memperkenalkan kepada anda cara PHP mengisytiharkan ruang nama, tiga cara untuk mengakses elemen ruang dan cara memperkenalkan ruang nama.

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

1 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 &#39;我是中国人&#39;;
  }
  getInfo();

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
?>
Salin selepas log masuk

Kesan :

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

Gunakan 命名空间 untuk memasukkan ruang nama dan kaedah panggilan. Contoh:

<?php
  namespace China; // 定义命名空间
  function getInfo () {
    echo &#39;我是中国人&#39;;
  }
  getInfo();

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
  \China\ getInfo();
?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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 &#39;China\Beijing\Shunyi&#39;;
  }
  getInfo(); // 非限定名称访问

  namespace USA\Washington; // 定义命名空间
  function getInfo () {
    echo &#39;USA\Washington&#39;;
  }
  \USA\Washington\ getInfo(); // 完全限定名称访问
?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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 &#39;China\Beijing\Shunyi&#39;;
  }

  namespace China\Beijing; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing&#39;;
  }

  getInfo();  // 非限定名称访问 
  \China\Beijing\getInfo();  // 完全限定名称访问
  Shunyi\getInfo();  // 限定名称访问

?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

2. Memperkenalkan ruang nama

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 &#39;China\Beijing\Shunyi<br>&#39;;
  }

  namespace China\Beijing; // 定义命名空间
  function getInfo () {
    echo &#39;China\Beijing<br>&#39;;
  }

  use China\Beijing\Shunyi;
  getInfo(); 
  Shunyi\getInfo();

?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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 &#39;jdk&#39;;
  }
  const TYPE = &#39;CONST&#39;;
  namespace USA; // 定义命名空间
  // 引入类
  use China\Beijing\Shunyi\Student;
  $stu = new Student();
  var_dump($stu);
  echo &#39;<br>&#39;;
  // 引入函数
  use function China\Beijing\Shunyi\getInfo;
  getInfo();
  echo &#39;<br>&#39;;

  // 引入常量
  use const China\Beijing\Shunyi\TYPE;
  echo TYPE;
?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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 &#39;<br>&#39;;
  $stu1=new ChinaStudent;
  var_dump($stu1);
?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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 &#39;李白<br>&#39;;
  }
  \getInfo();

?>
Salin selepas log masuk

Kesan:

Analisis mendalam tentang cara mengisytiharkan dan memperkenalkan ruang nama dalam PHP

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!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!