您的位置:首页 > 编程语言 > PHP开发

[thinkPHP5项目实战_02]命名空间的定义

2017-08-10 10:06 501 查看

1.命名空间解决的问题

1)用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;

2)为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。 

作用:对类、函数和和const定义的常量起作用

2.命名空间的用法

<?php
namespace  MyProject ;

const  CONNECT_OK  =  1 ;
class  Connection  {  /* ... */  }
function  connect () {  /* ... */   }

?>


举例说明

<?php
namespace pro1;
function func(){
echo "func1";
}
const x = "name1";

namespace pro2;
function func(){
echo "func2";
}
const x = "name2";


3.命名空间的使用

<?php
namespace pro1;
function func(){
echo "func1";
}
const x = "name1";

\pro1\func();
echo \pro1\x;

namespace pro2;
function func(){
echo "func2";
}
const x = "name2";

\pro2\func();
echo \pro2\x;


注意:在实际的编程实践中,非常不提倡在同一个文件中定义多个命名空间,一般使用大括号形式的语法

<?php
namespace  MyProject  {

const  CONNECT_OK  =  1 ;
class  Connection  {  /* ... */  }
function  connect () {  /* ... */   }
}

将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来


<?php
namespace  MyProject  {

const  CONNECT_OK  =  1 ;
class  Connection  {  /* ... */  }
function  connect () {  /* ... */   }
}

namespace { // global code
session_start ();
$a = MyProject \ connect ();
echo MyProject \ Connection :: start ();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: