php基础--快速复习记录14-命名空间

命名空间

将php代码抽象起来的逻辑空间
在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

Note:
名为PHP或php的命名空间,以及以这些名字开头的命名空间(例如PHP\Classes)被保留用作语言内核使用,而不应该在用户空间的代码中使用。
  1. 定义命名空间

<?php
namespace test;
class A{}
inerface AA{}
trait AAA{}
function B(){}
const C = 5;

命名空间只对class,interface,trait,function,常量起作用,namespace语句必须放在脚本的第一行,declare除外。

  1. 子命名空间 以\隔开

  2. 同一文件下多个命名空间,使用{}分割,不过最好一个文件里一个定义一个空间。

  3. 方式 以namespace app\models举例

    • 非限定 $a = new ClassName()相对转换为\app\models\ClassName
    • 限定 $a = new backend\ClassName()相对 转换为\app\models\backend\ClassName()
    • 完全限定 $a = new \app\view\ClassName()绝对 就是app\view\ClassName
  4. 动态访问命名空间中 限定和完全限定效果一样

<?php
$class_name1 = "app\models\User";
$class_name2 = "\app\models\User";
$class1 = new $class_name1();
$class2 = new $class_name2();//二者效果一致
  1. 别名 use namespace\model as mymodel然后可以直接用new mymodel()

  2. 不定义则是全局空间 用\表示

转载于:https://www.cnblogs.com/hujiejeff/p/6801419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值