和 spl_autoload_register函数相关的另一个函数是__autoload();
__autoload()是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数。
看下面例子: 
新建文件Printer.class.php
<?php
class Printer {
  function doPrint() {
    echo 'hello world';
  }
}
?>
再建文件 index.php
<?php
function __autoload( $class ) {
$file = $class . '.class.php';
if ( is_file($file) ) {
return require_once($file);
}
}
$obj = new Printer();
$obj->doPrint();
?>
运行index.php后正常输出hello world。在index.php中,由于没有包含Printer.class.php,在实例化Printer时,自动调用__autoload函数,参数$class的值即为类名Printer,此时Printer.class.php就被引进来了。 
在面向对象中这种方法经常使用,可以避免书写过多的引用文件,同时也使整个系统更加灵活。 
再看spl_autoload_register(),这个函数与__autoload有与曲同工之妙,看个简单的例子: 
class VLoader{

public static function loader($class){
        $file = $class . '.class.php';
        if(is_file($file)){
            echo 'VLoader::loader<br />';
            return require_once($file);
        }
    }
}

//spl_autoload_register(array('VLoader','loader')); //第一种调用方法,数组调用方法
spl_autoload_register('VLoader::loader');  //第二种调用方法,静态调用方法

$p = new Printer();
$p->doPrint();

将__autoload换成loader函数。但是loader不会像__autoload自动触发,这时spl_autoload_register()就起作用了,它告诉PHP碰到没有定义的类就执行loader()。

转载于:https://blog.51cto.com/hansome/1102112

PHP spl_autoload_register()函数使用相关推荐

  1. PHP中spl_autoload_register函数的用法

    spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register - 注册__autoload()函数 说明 bool spl_autol ...

  2. PHP中spl_autoload_register()函数用法实例详解

    在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.c ...

  3. php spl_autoload_register() 函数

    spl_autoload_register()的用法: 其中$this表示当前类,autoload()是我注册的自动加载函数,当然这个只是一个函数名,只要不与php的关键字重复,符合一般函数名的命名规 ...

  4. 详解PHP spl_autoload_register()函数

    在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.c ...

  5. php 详解spl_autoload_register()函数

    在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.c ...

  6. 详解spl_autoload_register()函数

    在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.c ...

  7. spl_autoload_register()函数使用详解

    解释: 注册给定的函数作为 __autoload 的实现(当实例化不存在类的时候,调用该函数.可多次使用) spl_autoload_register ([ callable $autoload_fu ...

  8. spl_autoload_register函数

    spl_autoload_register(['Yii', 'autoload'], true, true);这个函数是为了能够自动加载YII类下的autoload方法:spl_autoload_re ...

  9. spl_autoload_register 注册自己的自动加载函数(__autoload())

    说明: PHP实例化没有加载的类的,会自动调用__autoload();函数加载,可以通过__autolaod()函数来require类,解决很多类,多次require的问题, 可以通过spl的标准P ...

最新文章

  1. 一键清除Delphi中无用的文件
  2. 在子线程中使用runloop,正确操作NSTimer计时的注意点 三种可选方法
  3. linux下安装树梅派系统,优麒麟树莓派系统(优麒麟 for Raspberry Pi)的安装方法...
  4. jasmine没有调用fixture.detectChanges就取不到元素的原因
  5. php 图片无法删除,php如何删除上传的图片
  6. nedc和epa续航里程什么意思_400公里已成续航新起点,纯电动车的实用性到底怎样...
  7. 如何查看Win11系统的版本号
  8. Oracle 20c 新特性:Online SecureFiles Defragmentation 在线的 LOB 碎片整理
  9. sqlite 常用命令
  10. TStrings的一些技巧(转)
  11. 工厂方法模式java实例,设计模式之工厂方法模式实例(Java)
  12. 各种dns:百度DNS/阿里DNS/114DNS/腾讯DNS/谷歌DNS/OpenDNS 对比评测
  13. ppt模板如何制作通用表格?
  14. 常见的各种字幕内容总结(字幕基础、字幕介绍、字幕种类及常见格式、SRT+ASS+LYC等等)
  15. Windows 10 微软官方下载工具
  16. zabbix——告警媒介
  17. 笔划码、五笔码、拼音码软键盘中文输入
  18. 微信小程序获取系统时间、时间戳、时间时间戳加减
  19. 手把手教你用 Java 实现word、excel、ppt、txt等办公文件在线预览功能!
  20. 乐变热更新SDK的集成

热门文章

  1. 软件测试个人感悟之测试用例的评审重点是什么?
  2. 浅谈软件测试人员不要这样写测试用例(给测试新手和老鸟的提示)
  3. APP 怎么进行抓包接口测试
  4. 快来学习一下吧!Web前端开发CSS居中的五大方式
  5. vscode 插件导出_VScode插件推荐
  6. python mysql api_python mysql api
  7. weui开发文档_58小程序云 | 一站式跨平台小程序开发解决方案
  8. 计算机录音机应用程序在哪,windows7如何给电脑录音 windows7录音机在哪
  9. Opencv_黑白素描
  10. python3导入模块原理_python模块导入原理