ITPub博客

首页 > IT职业 > IT职场 > PHP命名空间

PHP命名空间

IT职场 作者:devinw 时间:2021-09-09 09:19:26 0 删除 编辑

@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只能导入类,函数式导入不了的.




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2715/viewspace-2802161/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-16

  • 博文量
    83
  • 访问量
    760