tp的命名空间

当开发大型项目的时候,可能需要成千上万的文件,面向对象通过命名空间解决这个问题的。PHP命名空间是PHP5.3以后出现的。

命名空间中可以出现:类,函数,常

只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。


命名空间的声明和使用:

<?php
namespace China;
const nation = '中国<br>';
function getInfo(){
    echo '我是中国人<br>';
}

namespace USA;
const nation = 'USA<br>';
function getInfo(){
    echo 'I am a American<br>';
}

echo '<meta charset="utf-8" />';
getInfo();                   //非限定名称访问
\China\getInfo();            //完全限定名称访问
输出结果:

I am a American

我是中国人



命名空间多级访问一:

<?php
namespace China\beijing\HaiDian;
class Person{
    static $name = "李白<br>";
}

namespace USA\Washington;
class Person{
    static $name = 'Abraham Lincoln';
}

echo '<meta charset="utf-8">';
echo Person::$name;
echo \China\Beijing\HaiDian\Person::$name;
运行结果:

Abraham Lincoln李白


命名空间多级访问二:

<?php
namespace China\Beijing\HaiDian;
function getInfo(){
    echo '这是China\Beijing\HaiDian命名空间';
}

namespace China\Beijing;
function getInfo(){
    echo '锄禾日当午';
}

echo '<meta charset="utf-8">';
getInfo();           //非限定名称
HaiDian\getInfo(); 


空间元素访问的三种形式:

1、非限定名称访问

echo getInfo()

类似于:require (‘getinfo.php’);

2、限定名称访问,是相对限定

China\getInfo();

类似于:require(‘China/getInfo.php’);

3、完全限定访问

\China\getInfo()

类似于:require(‘C:\China\getinfo.php’);


命名空间注意事项

1、最顶层的\表示的是公共空间

2、namespace 必须在最上面

3、命名是虚拟的空间,不是真实存在的目录,当时ThinkPHP的命名空间是真实的地址路径

4、当前文件中具有命名空间的文件,不会改变当前文件的命名空间


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值