PHP命名空间namespace定义及导入use用法详解
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-05 15:56:55 浏览: 评论:0
这篇文章主要介绍了PHP命名空间namespace定义及导入use用法,结合实例形式详细分析了php中命名空间namespace的功能、定义及导入use相关使用方法与操作技巧,需要的朋友可以参考下。
本文实例讲述了PHP命名空间namespace定义及导入use用法,分享给大家供大家参考,具体如下:
在PHP中,出现同名函数或是同名类是不被允许的,为防止编程人员在项目中定义的类名或函数名出现重复冲突,在PHP5.3中引入了命名空间这一概念。
1.命名空间,即将代码划分成不同空间,不同空间的类名相互独立,互不冲突。一个php文件中可以存在多个命名空间,第一个命名空间前不能有任何代码。内容空间声明后的代码便属于这个命名空间,例如:
- <?php
- echo 111; //由于namespace前有代码而报错
- namespace Teacher;
- class Person{
- function __construct(){
- echo 'Please study!';
- }
- }
2.调用不同空间内类或方法需写明命名空间,例如:
- <?php
- namespace Teacher;
- class Person{
- function __construct(){
- echo '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函数
输出:
- I want to play!
- Please study!
- I want to play!
- You must stay here!
3.在命名空间内引入其他文件不会属于本命名空间,而属于公共空间或是文件中本身定义的命名空间,例:
首先定义一个1.php和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.下面我们来看use的使用方法:(use以后引用可简写)
- 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(); //报错
Tags: PHP命名空间 namespace use
相关文章
- ·PHP中的命名空间详细介绍(2021-06-07)
- ·详细解读php的命名空间(一)(2021-09-03)
- ·详细解读php的命名空间(二)(2021-09-03)
- ·PHP命名空间简单用法示例(2021-11-03)
- ·实例讲解PHP中使用命名空间(2021-11-06)
- ·PHP中命名空间的使用例子(2021-11-13)
- ·PHP进阶学习之命名空间基本用法分析(2021-11-26)
- ·PHP命令空间namespace及use的用法小结(2021-08-21)
- ·php $_SERVER['HTTP_USER_AGENT'] 用法介绍(2014-03-06)
- ·php登录与退出登录实例代码(2014-03-11)
- ·HTTP_REFERER 与 HTTP_USER_AGENT的使用方法(2014-09-18)
- ·php中get_meta_tags()、CURL与user-agent信息对比(2014-09-22)
- ·PHP中的use关键字概述(2021-03-23)
- ·PHP JSON出错:Cannot use object of type stdClass as array解决方法(2021-03-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)