在了解这个函数之前先来看另一个函数:__autoload。

一、__autoload

这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数。看下面例子:

printit.class.php 
 
<?php 
 
class PRINTIT { 
 
 function doPrint() {
  echo 'hello world';
 }
}
?> 
 
index.php 
 
<?
function __autoload( $class ) {
 $file $class '.class.php';  
 if is_file($file) ) {  
  require_once($file);  
 }
 
$obj new PRINTIT();
$obj->doPrint();
?>

运行index.php后正常输出hello world。在index.php中,由于没有包含printit.class.php,在实例化printit时,自动调用__autoload函数,参数$class的值即为类名printit,此时printit.class.php就被引进来了。

在面向对象中这种方法经常使用,可以避免书写过多的引用文件,同时也使整个系统更加灵活。

二、spl_autoload_register()

再看spl_autoload_register(),这个函数与__autoload有与曲同工之妙,看个简单的例子:

  
 
<?
function loadprint( $class ) {
 $file $class '.class.php';  
 if (is_file($file)) {  
  require_once($file);  
 
 
spl_autoload_register( 'loadprint' ); 
 
$obj new PRINTIT();
$obj->doPrint();
?>

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

spl_autoload_register() 调用静态方法

  
 
<? 
 
class test {
 public static function loadprint( $class ) {
  $file $class '.class.php';  
  if (is_file($file)) {  
   require_once($file);  
  
 }
 
spl_autoload_register(  array('test','loadprint')  );
//另一种写法:spl_autoload_register(  "test::loadprint"  ); 
 
$obj new PRINTIT();
$obj->doPrint();
?>

详解PHP spl_autoload_register()函数相关推荐

  1. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解

    PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...

  2. map函数的用法python,详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...

  3. 你是真的“C”——详解C语言函数模块知识(上篇)

    详解C语言函数模块知识(上篇)

  4. MaxCompute SQL函数详解 ODPS SQL函数详解---之日期相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解 日期函数 to_date函数 返回类型:datetime 语法:to_date(类型 参数1,类型 参数2);to_date(strin ...

  5. concat拼接的坑 mysql_详解MySQL拼接函数CONCAT的使用心得

    这篇文章我们来讲一下在网站建设中,详解MySQL拼接函数CONCAT的使用心得.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前几篇文章给大家介绍了MySQL中的替换函数( ...

  6. MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数 MaxCompute/ODPS SQL常用数学运算相关函数 ABS函数-计算绝对值 sql:select A ...

  7. pandas数据清洗:drop函数案例详解、dropna函数案例详解、drop_duplicates函数案例详解

    pandas数据清洗:drop函数.dropna函数.drop_duplicates函数详解 1 drop函数简介 1.1 构建学习数据 1.2 删除行两种方法 1.3 删除列两种方法 2 dropn ...

  8. 详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示

    详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示 目录 01-详解函数imread():读取图像文件 02-详解函数imshow():显示图像 03-使用 ...

  9. python while函数_详解python while 函数及while和for的区别

    1.while循环(只有在条件表达式成立的时候才会进入while循环) while 条件表达式: pass while 条件表达式: pass else: pass 不知道循环次数,但确定循环条件的时 ...

最新文章

  1. 在 Ubuntu 上安装最新版本的 Erlang方法介绍
  2. redis教程(一)之redis简介
  3. 学习java的一些笔记(3)
  4. java方便适配器,JAXB简单自定义适配器以及简单使用
  5. 中信证券新基建专题报告《5G和数据中心的投资机会》
  6. 【实战】使用pyecharts绘制词云图-淘宝商品评论展示
  7. [APIO2018] New Home 新家(线段树,二分答案,离散化)
  8. Hello Indigo
  9. 两种DIV水平居中的方法
  10. 借助FLASH技术美化VBA操作界面
  11. SPOJ 4487. Can you answer these queries VI splay
  12. 踏实学习前端,学技术,必有高薪,好的人生,学习量大能力要求高就对了
  13. 阿里云接受邮件服务器是什么,接收邮件服务器pop3
  14. 2022年世界最强与最弱的护照:日本和新加坡并列第一,德国和韩国并列第二,美国和英国排名回升 | 美通社头条...
  15. Api 接口文档是什么?如何直接使用 ApiDoc 生成接口文档
  16. 研发计算机主板需要什么专业,一种计算机主板研发用固定装置的制作方法
  17. 前置机的作用(转载)
  18. ubuntu linux通过rclone 挂载onedrive 到本地磁盘
  19. pbx_extension_helper: No application ‘Macro‘ for extension (from-internal, h, 1)
  20. 英语流利说l4u1p2_L4-U1-P2-4 Vocabulary:Geometry 英语流利说 懂你英语

热门文章

  1. Keil中找不到芯片,往Keil中添加不存在的芯片,Keil安装pack文件
  2. GD32F130命名方式
  3. NR 5G SA注册流程
  4. java 实现HTTP连接(HTTPClient)
  5. Spring Boot 中的容器配置
  6. 服务管理--systemctl命令
  7. 《Swift编程入门经典》
  8. Python Tricks 若干
  9. 解决 DNS general: warning: *** POKED TIMER ***
  10. skill——iptables(五)