李涛自留地
回到顶部
首页 > php学习 > PHP类的自动加载函数如何使用?PHP类的自动加载使用实例

PHP类的自动加载函数如何使用?PHP类的自动加载使用实例

文章目录

之前学习了很多有关PHP面向对象中的魔术方法,但是今天在学习__autoload()自动加载魔术方法的时候,在实例中使用__autoload()时,报错提示已经被PHP废弃,查看了一下PHP手册才明白7.2以上版本中已经将__autoload()废弃掉,而被新的函数spl_autoload_register()所替代。

为什么要在使用类的自动加载?

当我们在PHP的项目当中有时候会为每一个类写一个文件,如果我们写了多个类,就有很多个类文件,如果我们要引用这些类文件的时候,我们需要一个一个的使用include_once引入,这样十分的浪费时间和麻烦,所以智能的PHP就专门为我们内置自动加载类的函数spl_autoload_register()。

spl_autoload_register函数如何使用?

spl_autoload_register()函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。像class一样的结构都可以以相同方式自动加载。包括类、接口等。

PHP类的自动加载函数使用实例代码:

以下是新建的两个类文件:

playobject.php代码:

<?php

class playobject{
    private $cont;
    function __get($test){
        return '足球是世界第一运动!';
    }
}

studyobject.php代码:

<?php

class studyobject{
    public $studentName;
    public $studentAge;
    function __construct($studentName,$studentAge)
    {
        $this->studentName = $studentName;
        $this->studentAge =$studentAge;
    }
    function __toString()
    {
            return $this->studentName.'你的年龄是:'.$this->studentAge;
    }
}

?>

然后下面是使用spl_autoload_register函数对类文件进行自动加载的代码:

<?php
//自动加载类文件的方法
spl_autoload_register(function ($class_name) {
    require_once $class_name.'.php';
});

$playobject = new playobject();
echo $playobject->cont;
echo '<hr>';
$studyobject = new studyobject('小余',12);
echo $studyobject->__toString();

?>
PHP类的自动加载函数如何使用?PHP类的自动加载使用实例

在我们使用了spl_autoload_register()函数后,就成功的将类文件加载到了以上的代码块中,并成功的实例化并调用了相关的成员方法。

spl_autoload_register函数在PHP面向对象当中还是比较重要的,学会了使用类文件的自动加载,能为我们在类使用时节约更多的时间和精力。后续李涛自留地将记载更多关于PHP面向对象的学习笔记。

若非作者标注皆为李涛自留地原创文章,转载或复制请以超链接形式并注明出处。