PHP命名空间(namespace)的动态访问及使用技巧

2025-05-29 0 38

PHP的命名空间(namespace)是PHP 5.3中加入最重要的一个新特性,这个概念在C#中已经很早就有了,php中的namespace其实和c#的概念是一样的。

一.动态访问命名空间的元素

?

1

2

3

4

5

6

7

8

9
namespace me\\poet;

function test()

{

echo '1111';

}

$fun = 'test';//不能这么用,最后$fun()无法动态调用到test():Fatal error: Call to undefined function test()

$fun = '\\me\\poet\\test';//正确

//$fun = 'me\\poet\\test';//正确

$fun();

也就是说,动态调用必须是 限定名称 或 完全限定名称(概念参考:PHP命名空间的使用基础)


二.魔术常量 和 操作符

?

1

2

3

4

5

6

7

8

9

10
namespace me\\poet;

function test()

{

echo '1';

}

echo __NAMESPACE__; //魔术常量:命名空间的名称(输出 me\\poet)

//namespace操作符:显式访问当前命名空间或子命名空间中的元素,等价于类中的self操作符

\\me\\poet\\test();

namespace\\test();

//上两行代码等价。


三.别名、导入 和 全局空间(含多个例子)

?

1

2

3

4

5

6

7

8

9

10
namespace ws\\weichen\\www;

use ws\\weichen\\www as poet;//定义别名poet

//use ws\\weichen\\www; //不加as,则取最后的作为别名(www)

function demo()

{

echo '1';

}

\\ws\\weichen\\www\\demo();

poet\\demo();

//www\\demo();    //不加as的情况,则这样调用

以上三行代码效果一样。
按规则(ws\\weichen\\www)命名的好处:若更换域名,只要把前缀名称改了就可以,不影响后面代码中别名www的使用。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
/* 导入 */

include 'hello.class.php';

use \\ws\\weichen\\www;

use \\Hello;

/*--------------------------------------------------------*/

/* 支持多个use语句 */

use \\nihao\\shijie as hello, \\ws\\weichen\\www;

/*--------------------------------------------------------*/

/* 全局空间:反斜线调用 */

namespace A\\B\\C;

//这个函数是 A\\B\\C\\fopen();

function fopen()

{

$f = \\fopen('demo.txt');//调用全局fopen函数

return $f;

}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP命名空间(namespace)的动态访问及使用技巧 https://www.kuaiidc.com/104108.html

相关文章

发表评论
暂无评论