PHP学习-类的自动加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP学习-类的自动加载相关的知识,希望对你有一定的参考价值。

其实我也搞不懂类的自动加载有什么用,只当是记录一下学习过程。

1.使用__autoload($className)方法

  比如说,有一个外部的类,我们需要另一个php文件中读取,通常可以使用__autoload方法来加载。

 例如:

  有一个Person类:

1 <?php
2 class Person{
3     
4 }

 我们在另一个php文件构造这个Person类的对象。

1 function __autoload($className){
2     require $className . ".php";
3 }
4 
5 $person = new Person();
6 var_dump($person);

需要注意的是Person所在的文件中,文件名必须跟类名相同。

2.使用spl_autoload_register($className)方法

  A.传递一个匿名函数(闭包)

spl_autoload_register(function($className){
    require $className . ".php";
});

 B.传递类的一个方法

 1 <?php 
 2 
 3 class Bean{
 4     public function autoLoad($className){
 5         require $className . ".php";
 6     }
 7 }
 8 
 9 /**
10   *第一个参数是一个类的对象
11   *第二个参数是类中的一个方法
12   */
13 spl_autoload_register([new Bean, ‘autoLoad‘]);
14 $person = new Person();
15 var_dump($person);

 

以上是关于PHP学习-类的自动加载的主要内容,如果未能解决你的问题,请参考以下文章

PHP中类的自动加载

PHP中类的自动加载

php自动加载带命名空间类的函数

PHP面向对象之类的自动加载

浅析PHP类的自动加载和命名空间

php命名空间+spl_autoload_register实现类的自动加载