php中命名空间namespace用法介绍

   现在说这个,感觉有点过时了,但是感觉用namespace的人还是不多,估计还是因为不习惯吧。

  class把一个一个function组织起来,namespace可以理解成把一个一个class,function等有序的组织起来。个人觉得,namespace的主要优势有

  第一,可以更好的管理代码

  第二,文件一多,可以避免class,function的重名

  第三,代码可读性增强了

  1,定义namespace

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

namespace userCenter;
 
//php代码
 
 
 
namespace userCenterregister;
 
//php代码
 
 
 
namespace userCenterlogin {
 
//php代码
 
}

  命名空间不能嵌套或在同一代码处声明多次(只有最后一次会被识别)。但是,你能在同一个文件中定义多个命名空间化的代码,比较合适的做法是每个文件定义一个命名空间(可以是相同命名空间)。

  2,调用namespace

  userCenterregister; //绝对调用

  userCenterlogin; //相对调用

  use userCenterregister; //引用空间

  use userCenterregister as reg; //引用空间并加别名

  3,实例说明

  login.class.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

<?php
 
 
 
namespace userCenter;
 
 
 
function check_username(){
 
echo "login OK<br>";
 
}
 
 
 
class login{
 
public function save(){
 
echo "login had saved<br>";
 
}
 
}
 
?>
 
regist.class.php
 
 
 
<?php
 
namespace userCenterregist
 
{
 
function check_username() {
 
echo "regist OK<br>";
 
}
 
 
 
class regist{
 
public function save(){
 
echo "regist had saved<br>";
 
}
 
}
 
}
 
 
 
?>

  test.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

<?php
 
 
 
require "login.class.php";
 
require "regist.class.php";
 
 
 
use userCenterregist; //使用use调用空间
 
use userCenterregist as reg; //as定义别名
 
 
 
echo userCentercheck_username(); //绝对调用
 
 
 
$login = new userCenterlogin();
 
echo $login->save();
 
 
 
echo registcheck_username(); //相对调用
 
echo regcheck_username(); //别名调用
 
 
 
$regist = new regregist();
 
echo $regist->save();

  使用use,比绝对调用要好一点,好比给class,function等加了一个前缀,这样看起来就比较清楚了

时间: 2024-10-31 12:40:44

php中命名空间namespace用法介绍的相关文章

PHP命名空间namespace用法实例分析_php技巧

本文实例讲述了PHP命名空间namespace用法.分享给大家供大家参考,具体如下: namespace(命名空间)相当于函数.类,划分了一个区域,这样子就使得在同个页面中可以require相同的类,使用相同名字的函数 : 在项目中比较少用 name.php: <?php //命名要使用复合名称 namespace me\mine; class me{ public function __construct(){ echo 'name'.'<br>'; } public function

浅析JavaScript中命名空间namespace模式_javascript技巧

namespace即"命名空间",也称"名称空间" ."名字空间".JavaScript不像C#或Java,有专门的namespace和package语法支持,当JS复杂到一定程度,尤其是引用大量的第三方JS框架和类库之后,命名冲突就会成为一个严重的问题,因此使用JS自己的变通方式建立命名空间很重要. 命名空间有助于减少程序中所需要的全局变量的数量,并且同时有助于避免命名冲突或过长的名字前缀. 关于命名空间的例子: /** * 创建全局对象MYA

ASP.Net中命名空间Namespace浅析和使用例子_实用技巧

关于Namespace(命名空间)的使用,我常用 复制代码 代码如下: < % @ Import Namespace="System.Data" %> ,这是在引用为我们提供的Namespace,这和ASP不同的,我们在ASP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能.其实说白了,一个Namespace; 就是一个组件. 这个是关于ASP.net的高级应用. 我下面简单的列举一些常用的Namespace 复制代码 代码如下: < % @

java中random()函数用法介绍

Random() 创建一个新的随机数生成器.    代码如下 复制代码 Random(long seed) 使用单个 long 种子创建一个新的随机数生成器. 我们可以在构造Random对象的时候指定种子,如:  代码如下 复制代码 Random r1 = new Random(20); 或者默认当前系统时间对应的相对时间有关的数字作为种子数:  代码如下 复制代码 Random r1 = new Random(); 种子数只是随机算法的起源数字,和生成的随机数字的区间无关. 2.Random类

JQuery中$之选择器用法介绍_jquery

1.$.在jQuery 中$("<span>"),这个语法等同于$(document.createElement("span")) ,这是一种用法,在选择元素的时候还会这样子的用:[attribute$=value],匹配给定的属性是以某些值结尾的元素.下面举个例子来说明一下: HTML代码 <input name="newsletter" /> <input name="milkman" /&g

构造函数中Perl方法用法介绍_应用技巧

Perl语言中Perl方法的概念你是否了解,这里向大家简单介绍一下,Perl类的Perl方法只不过是一个Perl子程序而已,也即通常所说的成员函数. Perl方法 一.Perl方法简介 Perl类的Perl方法只不过是一个Perl子程序而已,也即通常所说的成员函数.Perl方法定义不提供任何特殊语法,但规定Perl方法的第一个参数为对象或其被引用的包.Perl有两种Perl方法:静态Perl方法和虚Perl方法.静态Perl方法第一个参数为类名,虚Perl方法第一个参数为对象的引用.Perl方法

linux中uptime命令用法介绍

uptime命令用法十分简单:直接输入uptime即可. 另外还有一个参数  -V ,是用来查询版本的. (注意是大写的字母v) [linux @ localhost]$ uptime –V procps version 3.2.7 [linux @ localhost]$ uptime 显示结果为: 10:19:04 up 257 days, 18:56,  12 users,  load average: 2.10, 2.10,2.09 显示内容说明: 10:19:04           

javascript中onclick(this)用法介绍_javascript技巧

this指触发事件的对象 复制代码 代码如下: <input id="myinput" type="text" value="javascript中onclick中的this" onclick="javascript:test(this);"/> 复制代码 代码如下: function test(obj){ alert(obj); //[object HTMLInputElement] alert(obj.id);

EasyUI中的tree用法介绍_jquery

真的是太忙了,本应该有好多东西可以写,但是没什么闲时间,每次想到写的时候,来点事就又给忘了.10月最后一天了,在忙也得把这篇文章写完,不然又得多一个空白月了. 这是之前带领成员开发一个小模块功能的时候,需要用到弹出窗口加载树状级联单位选择,最后决定用采用jQuery+EasyUI插件进行开发.但是在使用EasyUI中tree的插件时,碰到了不少麻烦.为了提供弹出树的显示速度,就采用异步加载数节点值,首先先加载根节点,然后根据点击的节点展开加载子节点. 往往结果和预期的都不一样,困惑了几天,展开后