首页 > 代码库 > php 命名空间(要求php5.3以上)

php 命名空间(要求php5.3以上)

要求php5.3以上

<?php
namespace test;
// 命名空间与目录类似功能,也可定义子命名空间,用分层的方式定义:
/*
namespace mydir\ok\project;

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。另外,所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前:
*/
const OK = 100;
class tclass {

}
function tfunction()
{

}

// 类,函数,常量受命名空间影响,必须在所有代码之前声明命名空间
// 可以在同一个文件中定义多个命名空间(不建议),有两种方式,第一种[不推荐]:
<?php
namespace myproject;
const CONN = 1;
class myclass {}
function myfunction(){}

namespace AntherProject;
const CONN_2 = 100;
class Myclass2{}
function myfunction2(){}
?>
<?php
// 第二种定义多个命名空间,大括号方法
namespace MyProject{
  const CONN = 1;
  class myclass{}
  function myfunction(){}
}

namespace AnotherProject{
  const CONN = 2;
  class myclass2{}
  class myfunction(){}
}
?>

<?php
// 将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来,例如:
namespace MyProject{
  const CON = 1;
  class MyClas{}
  function myfunction(){}
}
// 以下为全局代码
namespace{
  session_start();
  $a = MyProject\myfunction();
  echo MyProject\Connect::start();
}
?>
//定义多个命名空间和不包含在命名空间的代码
<?php
declare(encoding="UTF-8");
namespace MyProject{
   const CONN = 1;
   class myclass{}
   function myfunction(){}
}
//以下全局代码
namespace {
  session_start();
  $a = MyProject\myfunction();
  echo MyProject\Connect::start();
}
?>