Maison >développement back-end >tutoriel php >Comment utiliser l'espace de noms PHP

Comment utiliser l'espace de noms PHP

php中世界最好的语言
php中世界最好的语言original
2018-03-24 11:44:511853parcourir

Cette fois, je vais vous montrer comment utiliser PHPnamespace et quelles sont les précautions lors de l'utilisation de PHPnamespace. Ce qui suit est un cas pratique, jetons un coup d'oeil.

Les exemples de cet article décrivent la définition de l'espace de noms PHPet l'utilisation de l'importation. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

En PHP, les fonctions ou classes du même nom ne sont pas autorisées. Afin de éviter les conflits répétés dans les noms de classes ou de fonctions définis par les programmeurs du projet , le concept d'espace de noms a été introduit dans PHP5.3.

1. Espace de noms, c'est-à-dire diviser le code en différents espaces. Les noms de classe dans différents espaces sont indépendants les uns des autres et n'entrent pas en conflit les uns avec les autres. Plusieurs espaces de noms peuvent exister dans un fichier php, et il ne peut y avoir de code avant le premier espace de noms. Le code après la déclaration de l'espace de contenu appartient à cet espace de noms , par exemple :

<?php
echo 111;  //由于namespace前有代码而报错
namespace Teacher;
class Person{
  function construct(){
   echo &#39;Please study!&#39;;
  }
}

2. Lors de l'appel de classes ou de méthodes dans différents espaces, l'espace de noms doit être spécifié. Par exemple :

<?php
namespace Teacher;
class Person{
  function construct(){
   echo &#39;Please study!<br/>';
  }
}
function Person(){
  return 'You must stay here!';
};
namespace Student;
class Person{
  function construct(){
   echo 'I want to play!<br/>';
  }
}
new Person();     //本空间(Student空间)
new \Teacher\Person();   //Teacher空间
new \Student\Person();   //Student空间
echo \Teacher\Person();   //Teacher空间下Person函数

Sortie :

I want to play!
Please study!
I want to play!
You must stay here!

3. L'introduction d'autres fichiers dans l'espace de noms n'appartiendra pas à cet espace de noms, mais à l'espace public ou L'espace de noms défini dans le fichier lui-même. Exemple :

Définissez d'abord un fichier 1.php et 2.php :

<?php  //1.php
class Person{
 function construct(){
   echo 'I am one!<br/>';
  }
}
<?php
namespace Newer;
require_once './1.php';
new Person();  //报错,找不到Person;
new \Person();  //输出 I am tow!;
<?php  //2.php
namespace Two
class Person{
 function construct(){
   echo 'I am tow!<br/>';
  }
}
<?php
namespace New;
require_once './2.php';
new Person();  //报错,(当前空间)找不到Person;
new \Person();  //报错,(公共空间)找不到Person;
new \Two\Person(); //输出 I am tow!;

4. ci-dessous Comment utiliser : (après utilisation, fait référence à et peut être abrégé)

namespace School\Parents;
class Man{
  function construct(){
   echo 'Listen to teachers!<br/>';
  }
}
namespace School\Teacher;
class Person{
  function construct(){
   echo 'Please study!<br/>';
  }
}
namespace School\Student;
class Person{
  function construct(){
   echo 'I want to play!<br/>';
  }
}
new Person();     //输出I want to play!
new \School\Teacher\Person(); //输出Please study!
new Teacher\Person();   //报错
----------
use School\Teacher;
new Teacher\Person();   //输出Please study!
----------
use School\Teacher as Tc;
new Tc\Person();   //输出Please study!
----------
use \School\Teacher\Person;
new Person();   //报错
----------
use \School\Parent\Man;
new Man();   //报错

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres sites Web chinois php Articles connexes !

Lecture recommandée :

PHP implémente directement la génération d'affiches publicitaires

PHP détermine si WeChat ou le navigateur est ouvert

Comment interroger différentes bases de données avec une seule instruction SQL

JS obtient le premier élément dans la liste déroulante de sélection Valeur

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!

Déclaration:
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