php命名空间与use(php 命名空间和use)

  • 1、PHP 的use 命名空间 是什么意思
  • 2、php编程高手们来吧 use有什么用?
  • 3、php use php namespace 到底是怎么一回事
  • 4、thinkphp 命名空间什么情况下使用,use后面加载什么
  • 5、php命名空间 use使用的问题:

有点类似于 java 中的包机制,用来解决重名问题的,每一个命名空间都是独立的

给你举个例子吧,比如我现在想写两个类,名字都叫 Action

?php

namespace A;    // 定义命名空间

class Action {

    //..

}

namespace B;    // 定义第二个命名空间

class Action {

    //..

}

use 关键字用于导入某个命名空间下的类, 如果我在B空间内想使用A空间中的Action类,就需要导入这个类才能使用(当然也可以指明空间前缀来使用)

namespace B;

// 在本空间中需要使用A空间中的Action类,使用use导入

use A\Action;    // 导入,如果本空间中也有一个Action会出现错误,因为类重名了

use A\Action as A_Action;   // 通过取别名的方式解决

$var = new A_Action;

php中use用来以别名的方式引入命名空间:

比如在a.php中调用My\Full命名空间下的Fun对象:

use My\Full;

$fun = new Fun();//这样就可以了,

如果没有使用use,

则需要:$fun = new My\Full\Fun();//带着命名空间路径

1. namespace Zend\Http\PhpEnvironment;

这句代码定义了一个命名空间,你可以理解为定义一个名称为 Zend\Http\PhpEnvironment 的域名。

在定义了之后,下面所申明的class, interface, const等都是在申明的这个“域”里面的。当引用一个申明了命名空间的包含文件,想要调用这个里面的东西,那就必须:

调整当前脚本也到这个域名里,否则,就得用namesapce的全称。

比如,inc.php 文件:

namespace Zend\Http\PhpEnvironment;

class Bar {}//定义了一个类

则其他文件调用时:

// 访问Foo的第一种方法,用全称

require ‘inc.php’;

$foo = new \Zend\Http\PhpEnvironment\Bar();

// 访问Foo的第二种方法

namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句

require ‘inc.php’;

$foo = new Bar();

2. use关键字目的是使用ns的别名:

比如说,上面的

// 访问Foo的第一种方法,用全称

require ‘inc.php’;

$foo = new \Zend\Http\PhpEnvironment\Bar();

用uses后,写法如下:

use \Zend\Http\PhpEnvironment as pe; //定义别名

$foo = new \pe\Bar(); //用短的别名来代替原来的

如果省略后面的as ….,那么,就可以直接用最后一节的文字来代替,比如,上面的:

use \Zend\Http\PhpEnvironment; //定义别名

$foo = new \PhpEnvironment\Bar(); //用短的别名来代替原来的

================================================

php官方手册中的相关内容:

在PHP中,namespace命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

PHP 命名空间支持有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名, 别名通过操作符 use 来实现。

命名空间其实只是为了加载文件更方便,tp的自动加载机制使用了它。

use 是继承类使用的关键词,当加载父类时,tp会更加use后面的命名空间查找对应的文件。tp会在多个目录进行查找,具体的可以查看tp文档的自动加载机制。

命名空间是运行时解析的。use就相当于一种声明,并不解析和加载。在使用时就可以自动加载进来,那么这里你就可以理解为把db这个类库导入进来了,所以可以正常使用。

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/126309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
简单一点简单一点
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • PHP与Python的比较

    本文将会对PHP与Python进行比较和对比分析,包括语法特性、优缺点等方面。帮助读者更好地理解和使用这两种语言。 一、语法特性 PHP语法特性: <?php // 简单的P…

    编程 2025-04-27
  • PHP版本管理工具phpenv详解

    在PHP项目开发过程中,我们可能需要用到不同版本的PHP环境来试验不同的功能或避免不同版本的兼容性问题。或者我们需要在同一台服务器上同时运行多个不同版本的PHP语言。但是每次手动安…

    编程 2025-04-24
  • PHP数组去重详解

    一、array_unique函数 array_unique是php中常用的数组去重函数,它基于值来判断元素是否重复,具体使用方法如下: $array = array(‘a’, ‘b…

    编程 2025-04-24
  • PHP导出Excel文件

    一、PHP导出Excel文件列宽调整 当我们使用PHP导出Excel文件时,有时需要调整单元格的列宽。可以使用PHPExcel类库中的setWidth方法来设置单元格的列宽。下面是…

    编程 2025-04-24
  • ArcGIS 空间连接

    ArcGIS 空间连接是一个非常强大的工具,它可以用于在 ArcGIS 中连接不同的数据源,在不同的地理空间数据之间进行交互,实现数据的整合和优化。本文将从多个方面,详细介绍 Ar…

    编程 2025-04-23

发表回复

登录后才能评论