php命名空间

2021-04-22 13:28

阅读:445

标签:names   efi   目录   get   err   phpstudy   red   函数名   错误   

阅读目录

    1. 命名空间的介绍

    2. 命名空间的三种访问方式

在一个php文件中声明两个相同的函数名的函数, 会报致命错误

php
function getmsg(){
    echo ‘123‘;
}

function getmsg(){
    echo ‘456‘;
}
Fatal error: Cannot redeclare getmsg() (previously declared in E:\phpstudy_pro\WWW\project1\public\test.php:10) in E:\phpstudy_pro\WWW\project1\public\test.php on line 15

这时候我们可以使用命名空间来解决这个问题

php

namespace ms1;
function getmsg(){
    echo ‘123‘;
}

namespace ms2;
function getmsg(){
    echo ‘456‘;
}

getmsg();

这样就相当于分别在两个空间里定义相同名的函数

但是直接调用getmsg函数的时候会直接当前空间下离它最近的函数:

456

如果要访问第一个名称空间中的函数则:

php

namespace ms1;
function getmsg(){
    echo ‘123‘;
}

namespace ms2;
function getmsg(){
    echo ‘456‘;
}

\ms1\getmsg();
123

而且, 使用命名空间可以在当前命名空间调用当前命名空间之下的空间的函数

php

namespace ms1;
function getmsg(){
    echo ‘123‘;
}
\ms2\getmsg();

namespace ms2;
function getmsg(){
    echo ‘456‘;
}
456

 

命名空间只对类, 函数, 常量起作用, 而且常量必须是const定义的常量, 而不是define定义的常量

php

namespace ms1;
define(‘MN‘, ‘YYF‘);

namespace ms2;
define(‘MN‘, ‘YLY‘);
Notice: Constant MN already defined in E:\phpstudy_pro\WWW\project1\public\test.php on line 19
php

namespace ms1; const MN = ‘YYF‘; namespace ms2; const MN = ‘YLY‘; echo MN;
YLY

 

php命名空间

标签:names   efi   目录   get   err   phpstudy   red   函数名   错误   

原文地址:https://www.cnblogs.com/yuyafeng/p/12243220.html


评论


亲,登录后才可以留言!