Une analyse approfondie de la façon de déclarer et d'introduire des espaces de noms en PHP

青灯夜游
Libérer: 2023-04-10 12:02:02
avant
3446 Les gens l'ont consulté

Cet article vous présentera comment PHP déclare un espace de noms, trois façons d'accéder aux éléments d'espace et comment introduire un espace de noms.

Une analyse approfondie de la façon de déclarer et d'introduire des espaces de noms en PHP

1. Espace de noms

1.1 Introduction

Dans un grand projet, vous pouvez rencontrer des classes, des fonctions et des constantes portant le même nom. Afin de distinguer ces éléments, nous pouvons les distinguer. éléments stockés respectivement dans différents espaces de noms. 1. Namespace est un package utilisé pour stocker des classes, des fonctions et des constantes dans le projet. 2. Déclarez l'espace de noms via le mot-clé namespace

1.2 Déclarez l'espace de noms

Exemple :

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

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
?>
Copier après la connexion

Effet :

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

Utilisez namespace pour saisir une méthode d'appel d'espace de noms. Exemple : 命名空间可进入某个命名空间中调用方法。 例:

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

  namespace USA; // 定义命名空间
  function getInfo () {
    echo &#39;我是美国人&#39;;
  }
  getInfo();
  \China\ getInfo();
?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

1.3 多级命名空间

命名空间的名字可以是多级的(子级命名空间) 例如:

<?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(); // 完全限定名称访问
?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

1.4 访问空间元素的三种方式

1、非限定名称访问 2、完全限定名称访问 3、限定名称访问 例:

<?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();  // 限定名称访问

?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

二、引入命名空间

通过use引入命名空间 完全限定名称访问元素 引入命名空间的拼接规则

公共空间+引入空间+(去除公共部分,公共部分只能留一级)空间元素

例:

<?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();

?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

2.1 引入空间元素

引入类: use 引入函数:use function 引入常量: use const 例:

<?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;
?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

2.2 给类、函数取别名

如果引入的类和函数与当前空间的类和函数名称相同,需要给引入的类和函数取别名。 通过as取别名 例:

<?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);
?>
Copier après la connexion

效果:

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

2.3 公共空间

如果一个页面没有namespace声明空间这个页面的元素在公共空间下 公共空间用

<?php
  function getInfo() {
    echo &#39;李白<br>&#39;;
  }
  \getInfo();

?>
Copier après la connexion
Effet :

2. png

Une analyse approfondie de la façon de déclarer et dintroduire des espaces de noms en PHP

1.3 Espace de noms multi-niveaux Le nom de l'espace de noms peut être multi-niveaux (espace de noms enfant) Par exemple :

rrreee

Effet :

3 . png

🎜1.4 Trois façons d'accéder aux éléments de l'espace🎜🎜🎜🎜1. Accès au nom non qualifié 2. Accès au nom complet 3. Accès restreint au nom Exemple : 🎜rrreee🎜Effet : 🎜🎜4. png🎜🎜🎜2. Introduire l'espace de noms🎜🎜🎜Introduire l'espace de noms via utiliser Élément d'accès au nom complet Introduire les règles d'épissage de l'espace de noms 🎜
🎜Espace public + introduire l'espace + (supprimer la partie publique, la partie publique ne peut rester qu'un niveau) élément d'espace 🎜
🎜Exemple : 🎜rrreee🎜Effet : 🎜🎜🎜🎜🎜🎜2.1 Présentation éléments spatiaux 🎜🎜🎜🎜Cours d'introduction : utilisation Introduire des fonctions : utiliser la fonction Introduire des constantes : utilisez const Exemple : 🎜rrreee🎜Effet : 🎜🎜6. png🎜🎜🎜🎜2.2 Noms d'alias pour les classes et les fonctions🎜🎜🎜🎜Si les classes et fonctions introduites ont les mêmes noms que celles de l'espace actuel, vous devez donner des alias aux classes et fonctions introduites. Utiliser l'alias comme Exemple : 🎜rrreee🎜Effet : 🎜🎜7. png🎜🎜🎜🎜2.3 Espace public 🎜🎜🎜🎜Si une page ne possède pas d'espace de déclaration d'espace de noms, les éléments de cette page sont dans l'espace public Les espaces publics sont représentés par Exemple : 🎜rrreee🎜Effet :🎜🎜🎜🎜🎜🎜🎜2.4 Notes sur l'espace de noms🎜🎜🎜🎜1. Les espaces de noms ne peuvent stocker que des classes, des fonctions et des constantes const. 2. Il ne peut y avoir de code devant le premier espace de noms, y compris les caractères vides et l'en-tête(). 3. Les fichiers inclus n'affectent pas l'espace de noms actuel. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal