«

php 命名空间

时间:2023-3-1 21:51     作者:wen     分类: PHP


<?php
//命名空间
   //定义命名空间
      namespace 关键字声明 **前面不能有任何输出
   //定义命名空间

         namespace wen\php 

   //全局空间

         在函数前面加上一个反斜线(\),就是使用全局空间

   //同一个文件定义多个空间

         在实际编程实际中非常不建议在一个文件里定义多个空间

   //使用命名空间
      //非限定名称
         在当前空间查找

   //限定名称
         限定名称类似于:相对路径
         new xx\xx();

   //完全限定名称   
         类似:绝对路径
         new \xxx\xx\xx();

   注意:如果在命名空间中使用类,只在当前空间查找并使用;函数,常量执行的机制;先在当前空间查找,如果没有找到则退而使用全局空间的函数,常量
   //导入命名空间      
         导入只涉及空间之间的操作,而require只涉及代码的加载我们即使使用require,加载代码那么这些代码所属的空间不变

         导入空间使用use关键字,后面跟需要导入的空间或成员
         1.可以将整个命名空间导入到另一个空间;如果整体导入,我们通常会给导入的空间取个别名(用 as 取别名),如果没有起别名,会默认使用最后一个(反斜线(\))后面的名字作为别名.
         use xxx;
         2.可以单独导入类,函数,常量到另一个空间(php5.6之前的版本只能导入类,PHP5.6之后的版本可以单独导入函数,常量)
         1.导入函数 use xxx\funcion;
         2.导入常量 use xxx\ROOT;
         **导入函数,产量到当前空间,如果有重复,就会被覆盖.
         **use 导入空间是从全局开始导入的,所以可以不加反斜线(\)

   //命名空间的动态语言特性

         命名空间可以保存到变量中,这就体现了动态语言的特性
         如果把命名空间保存到变量中的话,必须使用完全限定名称,由于限定名称和完全限定名称没有区别,因此其前导的反斜线是不必要的.
         $className = xxx\xxx;
         new $className;

?>

标签: PHP基础