吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3211|回复: 7
收起左侧

[其他转载] PHP 笔记——命名空间

[复制链接]
He110 发表于 2016-11-27 10:21
本帖最后由 He110 于 2016-11-27 10:23 编辑

觉得排版难看的可以在文末下载 Markdown 文档观看,观看本文建议先观看其他笔记——PHP 环境配置PHP 基础PHP 数组面向对象基础

概念

为了区分名字相同含义不同的函数、变量、常量等设立的功能

基本应用

使用 namespace 声明命名空间, namespace 需要写在 PHP 脚本的顶部, 必须是第一个 PHP 指令, 不要在前面出现非 PHP 代码、HTML 或空格。
命名空间可以在一个页面中出现多个, 从当前 namespace 到下一个 namespace 就是当前命名空间的范围, 但是建议在一个文件中只出现一个命名空间, 避免混乱

跨命名空间调用元素

不同命名空间是不能直接互相访问的, 需要使用 “空间名\元素名” 的方式调用, 如:

namespace Demo1
    var $name;
namespace Demo2
    echo \Demo1\$name;

子空间和公共空间

PHP 中的命名空间和文件系统很像, 可以定义子空间来描述空间之间的所属关系, 可以使用多层, 一般为公司域名倒置 + 项目名称, 如: xyz\hdiot\www\blog
没有设定命名空间的元素均属于公共空间, 在命名空间中调用默认空间中的元素的语法为: \元素名, 如: \Demo();

命名空间的名称和术语

  • 非限定名称: 不包含前缀的类名称($u = new User();), 如果当前命名空间为 \xyz\hdiot, 则 User 将被解析为 \xyz\hdiot\User
  • 限定名称: 包含前缀的名称($u = new hdiot\User();), 如果当前名称空间为 \xyz, 则 User 将被解析为 \xyz\hdiot\User
  • 完全限定名称: 包含了全局前缀操作符的名称($u = new \hdiot\User();), 在这种情况下 User 将被解析为 \hdiot\User

别名和导入

别名可以看做是快捷使用命名空间的一种方法, 可以为命名空间/类设置别名, 避免了使用冗长的命名空间, 而是用简短的一串字符串代替

使用别名

使用 use 关键字为命名空间/类设置别名

use 命名空间 as 别名;     // 为命名空间设置别名
use 命名空间\类 as 别名;   // 为类设置别名使用时将原本的命名空间/类替换成别名即可

注意事项

如果别名或者导入的命名空间中的元素, 与原命名空间的元素同名时, 会发生冲突, 产生致命错误

魔术常量


namespace: 当前命名空间
__NAMESPACE__: 当前命名空间名称

Markdown 文档下载:链接: http://pan.baidu.com/s/1hsfro0k 密码: wnnt

链接掉了请私信



免费评分

参与人数 3热心值 +3 收起 理由
caijinqi1998 + 1 支持楼主
酱爆你个西瓜头 + 1 继续支持楼主!
yutaiker + 1 已答复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ShadowY 发表于 2016-11-27 10:39
楼主厉害!给你顶顶
小歪歪歪 发表于 2016-11-27 10:51
yutaiker 发表于 2016-11-27 12:07
倾风 发表于 2016-11-30 11:07 来自手机
谢谢了,希望有用
caijinqi1998 发表于 2016-11-30 13:19
支持楼主系列,之前在敏捷开发上看到PHP,据说开发和迭代超短?
 楼主| He110 发表于 2016-11-30 13:52
caijinqi1998 发表于 2016-11-30 13:19
支持楼主系列,之前在敏捷开发上看到PHP,据说开发和迭代超短?

我还在学习,我也不清楚,我买了本 细说PHP 第三版在跟着学,现在就学到文件操作那而已
kay1686 发表于 2016-12-1 15:41
666666666666666
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-23 13:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表