PHP笔记之静态延时绑定与命名空间

本文详细介绍了PHP中的静态延时绑定概念及其在继承范围内的应用,通过实例展示了self与static的区别。此外,还阐述了命名空间的基本原理,包括如何定义命名空间、访问命名空间中的元素以及如何导入和别名命名空间元素。内容涵盖了命名空间在文件系统访问中的作用和使用关键字namespace的技巧。
摘要由CSDN通过智能技术生成

目录

静态延时绑定

1、什么是静态延时绑定

2、实例:静态延时绑定演示

命名空间概述

1、什么是命名空间

2、定义命名空间的要求

3、实例:定义单个命名空间

4、实例:定义子命名空间

使用命名空间

1、文件系统中访问文件的方式

2、访问命名空间中元素的方式

namespace关键字

命名空间元素的导入和别名

1、描述

2、实例:导入命名空间中的类并起别名


主要内容:

 

静态延时绑定

1、什么是静态延时绑定

  • 自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
  • "后期绑定"的意思是说,static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为"静态绑定",因为它可以用于(但不限于)静态方法的调用。
  • 我们需要一个在调用执行时才确定当前类的一个特征,就是说将static关键字对某个类的绑定推迟到调用执行时就叫静态延迟绑定
  • 语法:static::静态属性,静态方法,成员方法,类常量

2、实例:静态延时绑定演示

如果只有一个类,self和static都代表当前类

如果在继承范围,self永远代码当前类,static代表最终执行的类

命名空间概述

1、什么是命名空间

  • 从广义上来说,命名空间是一种封装事物的方法
  • 在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。
  • 在PHP中,命名空间用来解决在编写类库或应用程序时名称冲突的问题。
  • PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

2、定义命名空间的要求

  • PHP 在 5.3.0 以后的版本开始支持命名空间。
  • 空间中可以包含任意合法的PHP代码,但只有三种代码受命名空间的影响,它们是:类,函数和常量
  • 命名空间通过关键字namespace来声明。
  • 命名空间必须是程序脚本的第一条语句。

3、实例:定义单个命名空间

4、实例:定义子命名空间

  • 使用“\”斜线来分割子文件夹。例如:home\controller\a.txt
  • 使用“\”斜线来分割子命名空间。例如:$obj = new Home\Controller\Student()

使用命名空间

1、文件系统中访问文件的方式

  • 相对文件名形式,如foo.txt。它会被解析为 curdir/foo.txt。     当前文件夹
  • 相对路径名形式,如subdir/foo.txt。它会被解析为 curdir/subdir/foo.txt。   当前文件夹

/子文件夹

  • 绝对路径名形式,如/main/foo.txt。它会被解析为/main/foo.txt。  (从根目录找)

2、访问命名空间中元素的方式

  • 非限定名称(不带任何前缀)。$obj = new User(),解析为$obj = new current\User()
  • 限定名称(带相对空间前缀)。$obj = new Home\User(),解析为$obj = new current\Home\User()
  • 完全限定名称(从根空间开始)。$obj = new \Home\User(),解析为$obj = new \Home\User()

namespace关键字

关键字 namespace 可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的 self 操作符。

命名空间元素的导入和别名

1、描述

  • 允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。
  • PHP 命名空间支持两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名
  • 在PHP中,导入是通过操作符 use 来实现的,别名是通过操作符as来实现的。

2、实例:导入命名空间中的类并起别名

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值