博客列表 >命名空间的简单应用分析

命名空间的简单应用分析

罗盼的博客
罗盼的博客原创
2018年09月10日 15:54:15688浏览

1.同一个页面存在多个命名空间之间的访问

实例

<?php
namespace A{
header("content-type:text/html;charset=utf-8");   
 function a(){
    echo '我是a';
 }  
 \B\B::a();//访问B空间的B类中的a方法 
 \C\C::a();//访问C空间的C类中的a方法 
}

namespace B{
  
  class B
  {
     public static function a()
     {
    echo '我是b';             
     }
  }
 \A\a();//访问A空间的a方法
 \c\C::a();//命名空间大小写不敏感,访问C空间的C类中的a方法
   
}





namespace C{
  
   class C
  {
     public static function a()
     {
    echo '我是c';             
     }
  }
 
 \A\a(); //访问A空间的a方法
 \B\B::a();//访问B空间的B类中的a方法
 \C\C::a(); //完全限定名称
 C::a();//非限定名称
 D\D::a();//限定名称
}

namespace C\D{
  
   class D
  {
     public static function a()
     {
    echo '我是d';             
     }
  }

}
/*代码如上c空间-----命名空间中的完全限定名称,非限定名称和限定名称的区别是:在本空间中使用的变量或者方法、类
在解析路径的时候前面是当前空间的前缀,无需加前缀称为非限定名称如,如果从顶层命名空间找开始限定
名称则为完全限定名称,如果在本空间调用下一级空间中的变量或者方法、类,可以不用从顶级空间开始限定,
此时便是限定名称。这个和目录有点像,完全限定名称就好比绝对路径,限定名称就好比相对路径,非限定名称
就好比本文件中变量或者方法、类的路径*/

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.不在一个页面命名空间的使用

(1).index.php

实例

<?php
namespace one;
//命名空间:作用防止用户自定义类与系统类重名,或者与其他版块的类同名
/*存在命名空间,第一个必须写在最顶端,不然会报错,
下面再有命名空间可以不用写最顶端,命名空间的名称不分大小写。
如果没有命名空间的话,默认在顶级空间里,如果存在命名空间,
不光需要导入文件,而且要导入类,use 的作用给命名空间起个别名*/
header("content-type:text/html;charset=utf-8");
require '2.php';
use \two\two1;//引入的空间类取别名 如果没有as,就会取当前类名two1作为别名
class one{    
    public function __construct() {
       echo '我是one'; 
    }
}

new one;
echo '<br>';
new \two\two;//实例two类
echo '<br>';
$two1 = new two1;//实例two1类
echo two1::two1_test();//访问two1中静态方法
echo '<br>';
echo two1::FIT;//访问two1中常量
echo '<br>';
echo $two1->test();//访问two1中方法
echo '<br>';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

(2).2.php

实例

<?php
namespace two;
header("content-type:text/html;charset=utf-8");    
class two
{   
    public function __construct() {
       echo '我是two'; 
    }

}

class two1
{
     
   const FIT = 'www.12306.net';
    public static function two1_test()
    {
     return __METHOD__;   
    }
    public  function test()
    {
     return __METHOD__;   
    }

}

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议