php中的namespace 命名空间

名字解释:

namespace(命名空间),命名空间是从php5.3开始支持的功能。作用主要有两个:1.可以避免类名取得过长。2.当在多个框架配合使用时,同名的类之间不会冲突。

命名空间,看名字就知道,目的就是为了命名的,不然咋不叫QQ空间 盗梦空间 七度空间。额 好像有奇怪的掺进来了。



下面是示例代码:

 1 //在test1.php 中有一个类 叫做Person,它放在一个叫shop的namespace里。
 2 <?php
 3     namespace shop;//这个声明要放在php文件的最上面。就算是header也要让路。
 4
 5     header(‘content-type:text/html;charset=utf-8‘);
 6
 7     class Person {
 8       public $name = ‘Leonard‘;
 9     }
10 ?>
11 //在同级目录的test2.php中也有一个叫Person的类,它放在一个叫admin的namespace中
12 <?php
13
14     namespace admin;//上面可以有空白行。别的都不行
15
16     include_once(‘./test.php‘);
17
18     use shop as s;//这里就引用了这个shop命名空间。要使用test1.php中的类就必须写上这行。as的作用是简写命名空间的名字。
19
20     class Person {
21       public $name = ‘Sheldon‘;
22     }
23
24     $p1 = new s\Person();//上面用了as简写,s指代命名空间shop。没有用as的话就用 new shop\Person()来实例化对象。
25     echo $p1->name;//Leonard
26
27     $p2 = new Person();//不写命名空间时,就近在自己的命名空间里找Person类,找不到就报错咯。
28     echo $p2->name;//Sheldon
时间: 2024-08-04 11:03:45

php中的namespace 命名空间的相关文章

namespace 命名空间

一.命名空间的定义 namespace 命名空间的名字 {类/变量/函数/模板/其他命名空间}; 命名空间空间可以定义在全局作用域和其他命名空间中,但不能定义在函数或类的内部. 二.命名空间的作用域 每一个命名空间都是一个作用域,定义在某个命名空间中的名字可以被该命名空间内的其他成员访问,也可以被这些成员的内嵌作用域中的任何单位访问. namespace nsp{ int num=10; class ab { public: int val(){return num;} }; } int val

XML Namespace 命名空间

根据 Namespaces in XML W3C 推荐标准的定义,XML 命名空间 是由国际化资源标识符 (IRI) 标识的 XML 元素和属性集合:该集合通常称作 XML“词汇”. 定义 XML 命名空间的主要动机之一是在使用和重用多个词汇时避免名称冲突.XML 模式用于为 XML 实例创建一个词汇并频繁使用命名空间.因此,正确理解命名空间概念对于从总体上理解 XML 模式和实例验证至关重要. 命名空间在多个方面类似于 Java 中的程序包: Java 中的程序包可以包含许多可重用的类和接口.

第一章 01 namespace 命名空间

一.什么是namespace? namesapce是为了防止名字冲突提供的一种控制方式. 当一个程序需要用到很多的库文件的时候,名字冲突有时无法避免.之前的解决思路是使用更长的变量名字,使用不方便. 二.命名空间的定义 1.namespace   空间名称 { 变量: 函数: 类: } 三.命名空间的特点 1.每个命名空间都有自己的作用域: 2.命名空间可以是不连续的,正像代码中的所列举的例子: 1.1 如何理解命名空间的作用域 1 namespace global_namespace{ 2 3

linux中的namespace

     本文将就namespace这个知识点,进行简单的归纳总结,力求通俗易通.在资料汇总的过程中,参考了许多网上的博客资料,在文章尾部给出相关链接.      namespace,命名空间,从名字上看,应该是类似于包含许多名字的空间,打个比方,三年一班的小明和三年二班的小明,虽说他们名字是一样的,但是所在班级不一样,那么,在全年级排行榜上面,即使出现两个名字一样的小明,也会通过各自的学号来区分.对于学校来说,每个班级就相当于是一个命名空间,这个空间的名称是班级号.班级号用于描述逻辑上的学生分

JavaScript中的namespace

1 <head> 2 <title> New Document </title> 3 <script> 4 var global = window.global||{}; 5 global.version = '1.1'; 6 global.author = 'SL'; 7 global.namespace = function (_namespace) { 8 var levels = _namespace.split('.'); 9 var obj =

Phalcon中使用namespace时如何进行model相关的操作

Phalcon中的Model中使用了命名空间里如何定义关系映射?Phalcon的官方手册中未明确给出如何解决这个问题的方法.现提供给大家.方法如下,即是使用model中的alias选项即可. <?php namespace models; class Robots extends \Phalcon\Mvc\Model { /** * * @var integer */ public $id; /** * * @var string */ public $name; /** * * @var st

django removing hardcoded URLs in template --- 使用变量,把url放在变量中 {% url &#39;namespace:name&#39; %}

1 urlpatterns = [ 2 url(r'^admin/', admin.site.urls), 3 url(r'^votes/', include("polls.urls", namespace="polls")), 4 ] /myproject/urls.py 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 ''' 5 @version: 6 @author: leo Yang 7 @licen

Mybitis配置文件中的别名以及mapper中的namespace

1 基本知识 MyBatis中如果每次配置类名都要写全称也太不友好了,我们可以通过在主配置文件中配置别名,就不再需要指定完整的包名了. 别名的基本用法: <configuration> <typeAliases> <typeAlias type="com.domain.Student" alias="Student"/> </typeAliases> ...... </configuration> 但是如果

python中的namespace

python中的名称空间是名称(标识符)到对象的映射. 具体来说,python为模块.函数.类.对象保存一个字典(__dict__),里面就是重名称到对象的映射. 可以参看下面python程序的输出: print('globals:') print(globals().keys()) print('') x = 1 print('globals after definition of x:') print(globals().keys()) print('') if x == 1: y = 2