搜索
首页后端开发PHP问题php namespacee原理

php namespacee原理

Sep 06, 2019 pm 04:35 PM
namespacephp原理

php namespacee原理

1、什么是命名空间以及如何定义命名空间
一般情况下,在一个php程序源代码文件或同一个请求中是不允许有两个以上相同名称的类名、常量名或者函数名的,这样的话,程序在运行的时候就会报错。但是,在很多实际情况下,我们是无法避免在同一个文件下有两个以上相同名称的类名、常量名或者函数名的。这种情况下就需要引入命名空间。

举例:

<?php
function getUser () 
{
  return $username1;
}
  function getUser () 
  {
  return $username2;
  }

像这样的程序在执行的时候是会报错的。所以我们引入命名空间,如下:

<?php
namespace get1function getUser () 
{
  return $username1;
}
namespace get2
function getUser () 
{
  return $username2;
}

如何理解命名空间的含义呢?以上面的代码为例,我们把这个PHP文件想象成是一个文件夹,而里面的两个函数想象成是两个文件,但是在同一个文件夹下是不允许有两个相同名称的文件的,所以我们就必须的将他们分到两个不同名称的文件夹中。命名空间的道理就是这样的。

特别注意:
命名空间只对类名、函数名、常量(const定义的)有效。
一个文件的最前面的namespace前面不能有任何有效的字符

2、如何使用命名空间?
例如,我们如何使用上面定义的get2下的getUser()呢?
1)在访问函数(或常量、类名)的时候,不指定所在命名空间时,采用就近原则访问(访问当前命名空间下的)。
2)那么,如何访问指定命名空间下的内容呢?如下:

\get1\getUser(); // 访问get1下的getUser()方法

3、多级命名空间及三种访问方式
1)多级命名空间:
想象一下,如果一个PHP项目文件是一个文件夹,而一个文件夹下面也会有一级子文件夹,而在一级子文件夹下又有子文件夹(二级子文件夹),命名空间也是同样的道理,一个命名空间下,可能还有命名空间,这就是所谓的多级命名空间,例如thinkPHP中:

namespace app\Index\Controller;

这就是一个多级命名空间。至于访问方式同一般命与名空间中的一样。

2)命名空间的三种访问方式(和相对路径与绝对路径相似)
A. 非限定名称访问方式
B. 限定名称访问方式
C. 完全限定名称访问方式

<?php
namespace app\get1
function getUser () 
{
  return $username1;
  }
  namespace get2
  function getUser () {
  return $username2;
  }
  getUser(); // 非限定名称访问方式
  \app\get1\getUser(); //完全限定名称访问方式,从根路径开始,类似绝对路径
  app\get1\getUser(); //限定名称访问方式,不是从根路径开始,类似相对路径

4、命名空间的引入机制
1)空间的引入:关键字use,注意:当移入空间后,必须要用限定名称访问方式访问引入空间里面的函数(或类、常量),不能使用非限定名称方式访问,这样会访问到当前命名空间下的函数(或类、常量)。
2)空间类元素的引入:关键字use。注意:只能引入类,然后可以使用非限定名称访问。

更过相关内容请访问PHP中文网:PHP视频教程

以上是php namespacee原理的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

北端:融合系统,解释
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。