PHP中自动加载原理以及__autoload的使用教程

自动加载原理

自动加载的原理,就是在我们new一个class的时候,PHP系统如果找不到你这个类,就会去自动调用本文件中的__autoload($class_name)方法,我们new的这个class_name 就成为这个方法的参数。

所以我们就可以在这个方法中根据我们需要new class_name的各种判断和划分就去require对应的路径类文件,从而实现自动加载。

__autoload使用教程:

我们先一步步来,看下__autoload()的自动调用,看个例子:

index.php

$db =new DB();

如果我们不手动导入DB类,程序可能会报错,说找不到这个类:

Fatal error: Class 'DB' not found in D:\wamp\www\testphp\autoload\index.php on line 3

那么,我们现在加入__autoload()这个方法再看看:

$db =new DB();
function __autoload($className)
{
  echo $className;
  exit();
}

根据上面自动加载机制的描述,你分析下会输出什么? 没错:肯定是输出:DB, 也就是我们需要new 的类的类名。所以,这个时候我们就可以在__autoload()方法里,根据需要去加载类库文件了。

index.php

$db =new DB();
function __autoload($className)
{
  require $className .'.php';
}

DB.php

class DB
{
  publicfunction __construct()
  {
      echo 'Hello DB';
  }
}

这样子我们就很轻松的将我们需要new 的class 全部导入了进来,这样子,我们就可以轻松的new N个class,比如:

<?php
function __autoload($className)
{
  require $className .'.php';
}
$db =new DB();
$info =newInfo();
$gender =newGender();
$name =newName();
//也是支持静态方法直接调用的
Height::test();

推荐教程:PHP教程

以上就是PHP中自动加载原理以及__autoload的使用教程的详细内容,更多请关注其它相关文章!