栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP命名空间

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP命名空间

@PHP命名空间


例子:

namespace myself; //定义命名空间

function var_dump($a){ //命名空间下可以和系统函数重名

echo $a

}

var_dump(100); //调用的是命名空间下的函数

var_dump(100); //调用系统函数var_dump(100);


定义:使用namespace来声明命名空间,在namespace上面不能有任何的内容,和SESSION_START()类似.

例子:

namespace meizi;

const AAA = 1;

class Demo{

static function on(){

echo '1111';

}

function test(){

echo "2222222222222";

}

test();

meizitest();  //这种是绝对路径调用和直接调用test()效果一样.

echo meiziAAA;

echo meiziDemo::one();


命名空间的子命名空间

namespace meizipl;


@定义多个命名空间

namespace meizi;

namespace hello;

连续声明命名空间,后面的hello会覆盖前面的meizi;

语法例子:

namespace space1{

代码段;

}

namespace space2{

代码段;

}

在同一个文件中多个文件中,不允许在命名空间外加代码

namespace space1{

代码段;

}

$a = 100;  //加上这句代码出错

namespace space2{

代码段;

}

这种一个文件中包括多个命名空间的写法不建议使用.


@命名空间和动态语言特征

function demo() {

echo '22222222222';

}

$fun = 'demo';

$fun();   //动态调用

但是上面的代码如果包含在命名空间中则是不允许的

namespace ceshi {

function demo() {

echo '222222222';

}

$fun = 'demo';  //这样传值会导致下面的$fun()调用报错

//$fun = 'ceshidemo' 可以这样使用

$fun();

}

但是$fun = 'ceshidemo'这样调用有个弊端,当命名空间改变之后就会失效. 有个__NAMESPACE__常量显示当前命名空间的名字.所以可以更改为$fun = __NAMESPACE__ . 'ceshi';兼容性更好.


例子

namespace ceshimeizipl;

function demo() {

echo '222222222';

}

namespacedemo();

@命名空间别名

当命名空间的名字过长时,可以为其其个别名;

例子:

namespace comadminwangwww;

use comadminwangcom as aw;

function demo(){

echo 'wwwwwwww';

}

awdemo(); 

知识点: use comadminwangcom;  等价于 use comadminwangcom as com;


@命名空间调用函数空间外函数加

例子:

namespace  out;

inquire "test.class.php"

//包含一个test类文件,类文件有一个one方法

//第1中调用方式,前面加一个反斜杠

one();

//使用use导入一个全局类

use test;     test::one();

注意: use只能导入类,函数式导入不了的.




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228939.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号