Maison  >  Article  >  développement back-end  >  Espace de noms PHP : explication détaillée des alias et des instances d'importation

Espace de noms PHP : explication détaillée des alias et des instances d'importation

伊谢尔伦
伊谢尔伦original
2017-05-19 15:04:121945parcourir

Les alias et les importations peuvent être considérés comme un raccourci pour appeler des espaces de noms. Permettre aux noms externes complets d'être référencés ou importés via des alias est une fonctionnalité importante des espaces de noms. Ceci est quelque peu similaire à la façon dont vous pouvez créer des liens symboliques vers d’autres fichiers ou répertoires dans un système de fichiers Linux. Le chapitre précédent a expliqué la terminologie que vous devez connaître sur les trois noms de l'espace dans l'espace de noms : nom non qualifié, nom qualifié et nom complet . Ce n'est qu'en comprenant d'abord ces trois noms et termes que nous pourrons mieux apprendre et comprendre les alias des espaces de noms et le contenu importé.

L'espace de nommage PHP prend en charge deux méthodes d'alias ou d'importation :

utilise des alias comme nom de classe, ou utilise des alias pour le nom de l'espace de nom. Notez que php importe des fonctions ou des constantes. En php, les alias sont implémentés via l'opérateur use .

Ce qui suit est un exemple de code utilisant toutes les méthodes d'importation possibles :

<?php
namespace cn\my;  //声明命名空间 cn\my
class User{ }     // 当前空间下声明一个类
namespace shop;   // 在创建一个空间
use cn\my;        //导入一个命名空间
$my_User = new my\User();    //导入命名空间后可使用限定名称调用元素
use cn\my as u;            //命名空间使用别名
$my_User = new u\User();   //使用别名代替空间名
use cn\my\User;              //导入一个类
$my_User = new User();       //导入类后可使用非限定名称调用元素
use cn\my\User as myUser;   // 为类使用别名
$my_User = new myUser();   //使用别名代替空间名
?>
Il convient de noter que lors de l'utilisation de use pour importer, l'espace actuel est Pour les éléments avec le même nom, une erreur fatale se produira.

Le code est le suivant :

<?php
namespace cn\my;
class User{ }
namespace shop;
class User{ }
class myUser{ }
//导入一个类
use cn\my\User;
// 与当前空间的 User 发生冲突,产生致命错误
$my_user = new User();
// 为类使用别名
use cn\my\User as myUser;
// 与当前空间 myUser 发生冲突,产生致命错误
$my_user = new myUser();
?>
En plus d'utiliser des alias et des importations, vous pouvez également transmettre les

mots-clés de l'espace de noms et __ Constante magique NAMESPACE__Accédez aux éléments de manière dynamique. Le mot-clé namespace représente l'espace actuel, et la valeur de la constante magique __NAMESPACE__ est le nom de l'espace actuel __NAMESPACE__ peut être appelé dynamiquement en combinant des chaînes.

L'exemple de code est le suivant :

<?php
namespace cn\my;  //声明命名空间 cn\my
const PATH = &#39;cn\my&#39;;
class User{ }     // 当前空间下声明一个类
echo namespace\PATH;   //namespace 关键字表示当前空间 cn\my
$User = new namespace\User(); //使用namespace代替 \cn\my
echo __NAMESPACE__;    //魔法常量的值是当前空间名称 cn\my
$User_class =  __NAMESPACE__ . &#39;\User&#39;;  //组合称字符串并调用
$User = new $User_class;
?>
Dans l'exemple d'appel dynamique ci-dessus, la dynamique sous forme de chaîne Dans la méthode appelante, il convient de noter que les caractères spéciaux peuvent être échappés lors de l'utilisation de guillemets doubles. Par exemple, dans "__NAMESPACE__ . "Utilisateur" ", "Utilisateur" sera échappé dans la chaîne de guillemets doubles. De plus, PHP détermine l'espace où se trouve l'élément et le statut d'import lors de la compilation du script. Lors de l'analyse du script, les appels sous forme de chaînes ne peuvent être considérés que comme des noms non qualifiés et des noms complets, mais ne peuvent jamais être des noms qualifiés.

Ce qui précède est une introduction à l'espace de noms PHP : les alias et les importations doivent s'entraîner et utiliser davantage le code. La maîtrise de l'espace de noms PHP est d'une grande aide pour le développement à l'aide du framework PHP.

【Tutoriels associés recommandés】

1. "

php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP "

2.

Extension PHP5.6 de l'espace de noms : utilisation permettant d'importer des fonctions et des espaces constants

3

Un ensemble complet de tutoriels sur la programmation PHP de l'entrée à la maîtrise<.>

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