PHP命令空间namespace及use的用法实践总结

看PHP中的命名空间和use

namespace app\admin\model;
use think\Model;
use think\Db;

综上可以看出,命名空间就是相当于一个文件夹的路径。

同一个命名空间下,不能有相同的类文件。

同名的类文件可以存在于不同的命名空间下面。

用了命名空间,可以方便的调用其他文件夹下的文件。

只需要通过using、import、use引入命名空间下的文件即可。

从5.3开始你可以使用命名空间来组织你的代码了。 不同的命名空间内可以包含相同名字的类、函数以及常量。 声明一个命名空间非常简单,只需要在文件的开始处加上namespace 语句,像下面这样

从5.3开始你可以使用命名空间来组织你的代码了。 不同的命名空间内可以包含相同名字的类、函数以及常量。 声明一个命名空间非常简单,只需要在文件的开始处加上namespace 语句,像下面这样

  1. <?php
  2. /** classes/my/foo/MyClass.php */
  3. namespace my::foo;
  4. class MyClass {}//定义一个类
  5. // 当然,也可以定义函数和常量
  6. function myFunc() { }
  7. const MY_CONST = ‘foo’;
  8. ?>

有多种方法来访问

    1. <?php
    2. /** test.php */
    3. include(‘classes/my/foo/MyClass.php’);
    4. // 可以随时通过完整的名称来访问一个类
    5. $foo = new my::foo::MyClass();
    6. // 还可以使用use语句来导入一个命名空间
    7. use my::foo;
    8. // 然后,通过foo来引用 my::foo这个命名空间
    9. $foo = new foo::MyClass();
    10. // 也可以只导入一个类
    11. use my::foo::MyClass;
    12. $foo = new MyClass;
    13. // 可以为命名空间或者命名空间中的类创建别名
    14. use my::foo as MyFoo;
    15. use my::foo::MyClass as MyFooClass;
    16. $foo = new MyFoo::MyClass();
    17. $foo = new MyFooClass();
    18. // 注意, 下面的两种写法是等价的:
    19. use my::foo;
    20. use my::foo as foo;
    21. // 也可以用同样的方法来访问函数和常量
    22. my::foo::myFunc();
    23. myFoo::myFunc();
    24. my::foo::MY_CONST;
    25. myFoo::MY_CONST;
    26. ?>

use 语句只能导入命名空间和类,下面这种写法就不行: use my::foo::MY_CONST;。一个use语句的有效范围是从它被定义开始直到文件的结尾,你可以在全局范围内任何地方使用它。 你可以在多个文件中使用相同的命名空间。但是一个文件只应该包含一个命名空间 (这一行为可能会在最终版本中被改变,也可能用package来替换namespace关键字 :))。 尽管不能import一个函数或者常量, 但是仍然可以使用一些前缀来从命名空间中访问他们。在PHP 5.3的早期版本中,import 关键字被用来代替 use, 现在这一点已经被改变

原文地址:https://www.cnblogs.com/keta/p/9407339.html

时间: 2024-10-05 23:19:54

PHP命令空间namespace及use的用法实践总结的相关文章

C#设置有命令空间的属性

之前被问到一个问题,C#中如何设置android:name这样的属性?我的第一反应是直接setAttribute不就可以了么 SetAttribute(name, value), 可事实上却不行,因为本身并没有什么C#的开发经验,周围也没什么人搞这个,所以就只能通过搜索了.   最后通过搜索发现它需要指定命令空间,详情可参考这里>> SetAttribute(localName, namespaceURI, value) 所以设置android:name的方法就类似这样: xx.SetAttr

命令分析nginx访问日志的用法

awk分析日志常用高级使用命令方法 分析访问日志(Nginx为例) 日志格式: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"' 统计访问IP次数: # awk '{a[$1]++}END{for(i

类的命令空间

1. 类可以定义两种属性: 1> 静态属性:直接在类中定义的变量,是共享给所有实例对象的: 2> 动态属性:定义在类中的方法,是绑定到所有实例对象的: 3> 创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性: 4> 对象/实例访问对象时,先找自己的,没有再找类的,之后再找父类的,再没有就抛错: class Course: language = ['Chinese'] def __init__(self,teacher,course,pe

2019-2020-1学期 20192415 《网络空间安全专业导论》GPG实践

2019-2020-1学期 20192415 <网络空间安全专业导论>GPG实践 一.安装GPG 安装编译好的二进制包: # Ubuntu sudo apt-get install gnupg 安装完成后,键入下面的命令: gpg --help 屏幕显示如下,安装成功: 二.生成自己的密匙,并输出公钥 公钥文件(.gnupg/pubring.gpg)以二进制形式储存,armor参数可以将其转换为ASCII码显示. gpg --armor --output public-key.txt --ex

2019-2020-1学期 20192415 《网络空间安全专业导论》openssl实践

2019-2020-1学期 20192415 <网络空间安全专业导论>openssl实践 - 任务详情 参考https://www.cnblogs.com/rocedu/p/5087623.html,https://www.cnblogs.com/yangxiaolan/p/6256838.html,两人一组实践附图中的混合加密,提交实践截图. A,B两位同学分别产生一个公私钥对Apub,Apri, Bpub,Bpri,自己把公钥文件发送给对方(A的Apub给B,B的Bpub给A) A同学准备

开发命令行工具的 12 个最佳实践

简评:设计良好的命令行应用是极富生产力的工具,本文介绍了开发命令行工具的 12 个最佳实践 CLI 是构建产品的绝佳方式,与 Web 应用不同的是它需要的时间更少,并且功能更强大.使用Web,你可以执行开发人员编写的任何操作,使用 CLI,你可以轻松地将多个工具混合在一起以执行更加高级的任务,而这需要更多的专业知识才能使用,但仍然适用于管理任务.高级用户任务或开发人员产品. 在 Heroku,我们提出了一种称为 「12-factor app」 的方法,这是一套旨在制作易于维护的优秀 Web 应用

Linux find命令的用法实践

一.find命令简介 Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 1.命令格

df du 命令和磁盘分区介绍的用法介绍

4.1 df 命令 4.2 du 命令 4.3 磁盘分区 4.1 df命令 Linux中 df 命令的功能是用来检查 linux 服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 格式:df [选项] [文件] [[email protected] ~]# df            #不带参数的,显示信息如下 文件系统                          1K-块    已用     可用 已用% 挂载点 /dev/mapp

[转] - JAR文件包及jar命令详解 ( MANIFEST.MF的用法 )

常常在网上看到有人询问:如何把 java 程序编译成 .exe 文件.通常回答只有两种,一种是制作一个可执行的 JAR 文件包,然后就可以像. chm 文档一样双击运行了:而另一种是使用 JET 来进行 编译.但是 JET 是要用钱买的,而且据说 JET 也不是能把所有的 Java 程序 都编译成执行文件,性能也要打些折扣.所以,使用制作可执行 JAR 文件包的方法就是最佳选择了,何况它还能保持 Java 的跨平台特性. 下面就来看看什么是 JAR 文件包吧: 1. JAR 文件包 JAR 文件