sunny03 发表于 2018-12-15 06:50:44

【php】命名空间 和 自动加载的关系

目的

  本文的目的主要是说明 命名空间的 use 关键词 和 new>命名空间(namespace)
  php从5.3加入了命名空间,我略懂一些java,所以命名空间还是比较好理解的,为什么需要命名空间啦?主要解决自己写的内部类/函数/常量和 第三方的类/函数/常量冲突
  。引用命名空间下资源都要 使用关键字 use 标明 例如
require_once("apanly/BrowserDetector/Browser.php");  
use apanly\BrowserDetector\Browser;
  
new Browser();
自动加载
  php可以自定义自动加载函数,主要减少include 和 require 的使用。例如
function myLoader($classname){  
   $class_file = $classname . '.php';
  
   if ( file_exists($class_file) ){
  
      require_once($class_file);
  
   }else{
  
      echo "[ autoload error ]".$class_file." not found";
  
      die(0);
  
   }
  
}
  
spl_autoload_register("myLoader");
疑问
  是 use 的时候 会执行 myLoader 自动记载函数 还是 new 一个对象的时候会执行自动加载函数?
  答案是: new 一个对象的时候 会执行自动加载函数
示例演示
use 测试
页: [1]
查看完整版本: 【php】命名空间 和 自动加载的关系