在 PHP 5.3 之前,__autoload 函数抛出的异常不能被 catch 语句块捕获并会导致一个致命错误(Fatal Error)。 

尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_register() 函数。 spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载(同一个应用中,可以支持任意数量的加载器,比如第三方库中的)。因此,不再建议使用 __autoload() 函数,在以后的版本中它可能被弃用。

autoload_function
这是一个函数【方法】名称,可以是字符串或者数组(调用类方法使用)。这个函数(方法)的功能就是,来把需要new 的类文件包含include(requeire)进来,这样new的时候就不会找不到文件了。其实就是封装整个项目的include和require功能。

throw
此参数设置了 autoload_function 无法成功注册时, spl_autoload_register()是否抛出异常。

prepend
如果是 true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。

test.php

<?php
class test
{function __construct(){echo "test 类被初始化了<br>";}function show(){//当前页面是utf8编码   $str = '中文89PHP';echo strlen($str)."<br/>"; //中文+数字+英文:6 + 2 + 3 = 11echo mb_strlen($str, 'gbk')."<br/>"; //中文+数字+英文:3 + 2 + 3 = 8echo mb_strlen($str, 'utf8')."<br/>"; //中文+数字+英文:2 + 2 + 3 = 7 //数据库 varchar 一个中文占一个字符长度
    }
}

my_autoload.php 文件
<?php
//方法一:自动加载函数 5.0之后弃用
/*function __autoload($class)
{$file = $class . '.php';if ( is_file($file) ) {require_once($file);}
}$test = new test(); //输出:test 类被初始化了
*///使用 spl_autoload_register 函数
//方法二:
class my_autoload
{public static function autoload($class){$file = $class . '.php';if ( is_file($file) ) {require_once($file);}}
}
//注册加载
spl_autoload_register("my_autoload::autoload",true,true);$test = new test(); //输出:test 类被初始化了
$test->show();?>

转载于:https://www.cnblogs.com/wanglijun/p/10926499.html

spl_autoload_register 和 __autoload()魔术方法相关推荐

  1. 【PHP】__autoload()魔术方法与spl_autoload_register

    参考链接: 1.spl_autoload_register与autoload的区别详解 2.php.net 自动加载类 很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件.一个很大 ...

  2. php 魔术方法 说明

    1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的. ◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名. ◆_ ...

  3. php超全局变量,魔术常量,魔术方法

    整理了下关于php的基础知识,参考了些资料,如下: 超全局变量 超全局变量 - 超全局变量是在全部作用域中始终可用的内置变量: $GLOBALS $GLOBALS - 引用全局作用域中可用的全部变量 ...

  4. PHP5中的魔术方法

    一. __construct(),类的构造函数 php中构造方法是对象创建完成后第一个被对象自动调用的方法.在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空 ...

  5. mysql 魔术设置_PHP之十六个魔术方法详细介绍

    PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct ...

  6. PHP十六个魔术方法

    PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct ...

  7. php 类自动执行,php类中的魔术方法及类的自动加载

    类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...

  8. PHP 魔术方法详解

    __construct() 构造函数 php中构造方法是对象创建完成后第一个被对象自动调用的方法.在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法 ...

  9. PHP之十六个魔术方法详解 转自:青叶

    目录 PHP之十六个魔术方法详解 前言 范例 〇.__serialize() 和 __unserialize() 一. __construct(),类的构造函数 二.__destruct(),类的析构 ...

  10. php常用的魔术方法

    php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法 PHP中的魔术方法有 :__get, __set, __isset, __u ...

最新文章

  1. Android自定义控件前导基础知识学习(一)——Canvas
  2. 11月16日 个人战立会议内容报告
  3. React 点击按钮显示div与隐藏div
  4. python清空集合_python集合的操作
  5. Web应用与HTTP协议
  6. 20165226 实验四 Android程序设计
  7. Java编译期优化思维导图
  8. objective-c(iOS5) 中weak和strong使用的区别
  9. 数据库服务器编码,数据库编码,数据库表编码,数据库表字段编码
  10. 103 规约分析总结
  11. 银行管理系统实例(C语言版)
  12. wps怎么把两张图片组合_如何对word/wps中的多个图片进行组合。 专家详解
  13. 使用阿里云的【身份证实名认证接口】API核验用户的真实性
  14. Unity3D自制横版闯关游戏手册(1)
  15. [20190718]12c rman新特性 表恢复.txt
  16. 数据库系统头歌实验八 数据库完整性、安全设计
  17. 前端vue+后台node实现获取微信用户基本信息+调用微信JS-SDK(下篇)
  18. 推荐背诵的10篇美文
  19. 安卓中COLOR的值分析
  20. 【嵌入式 C】嵌入式开发神器—SourceInsight的使用教程

热门文章

  1. V4L2抓取USB摄像头YUV视频数据代码
  2. VC通过函数名调用DLL的标准范例
  3. 从openjdk.java.net获取OpenJDK8源码并编译(amd64/aarch64/arm64)
  4. 一个员工经常找别人聊天,吾就知道他要走人了
  5. JAVA转为wasm/JavaScript,可以考虑CheerpJ
  6. JAVA版的IntHashMap的多个源码
  7. 能跑的东西,尽量继续跑,平稳过渡
  8. 用南边代称一个公司,汝竟然也不满?
  9. linux curl 显示请求耗时和dns解析
  10. mstsc 中文打不了_伟大的中文!(妙不可言)