spl_autoload_register 和 __autoload()魔术方法
在 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()魔术方法相关推荐
- 【PHP】__autoload()魔术方法与spl_autoload_register
参考链接: 1.spl_autoload_register与autoload的区别详解 2.php.net 自动加载类 很多开发者写面向对象的应用程序时对每个类的定义建立一个 PHP 源文件.一个很大 ...
- php 魔术方法 说明
1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的. ◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名. ◆_ ...
- php超全局变量,魔术常量,魔术方法
整理了下关于php的基础知识,参考了些资料,如下: 超全局变量 超全局变量 - 超全局变量是在全部作用域中始终可用的内置变量: $GLOBALS $GLOBALS - 引用全局作用域中可用的全部变量 ...
- PHP5中的魔术方法
一. __construct(),类的构造函数 php中构造方法是对象创建完成后第一个被对象自动调用的方法.在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空 ...
- mysql 魔术设置_PHP之十六个魔术方法详细介绍
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct ...
- PHP十六个魔术方法
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct ...
- php 类自动执行,php类中的魔术方法及类的自动加载
类的模式方法都是 public 的,以 两个下划线开头,在某些情况下自动被调用,有点类似 hook 或者 事件触发. 魔术方法的传参方式不能使用引用. __construct() : 构造函数,实例化 ...
- PHP 魔术方法详解
__construct() 构造函数 php中构造方法是对象创建完成后第一个被对象自动调用的方法.在每个类中都有一个构造方法,如果没有显示地声明它,那么类中都会默认存在一个没有参数且内容为空的构造方法 ...
- PHP之十六个魔术方法详解 转自:青叶
目录 PHP之十六个魔术方法详解 前言 范例 〇.__serialize() 和 __unserialize() 一. __construct(),类的构造函数 二.__destruct(),类的析构 ...
- php常用的魔术方法
php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法 PHP中的魔术方法有 :__get, __set, __isset, __u ...
最新文章
- Android自定义控件前导基础知识学习(一)——Canvas
- 11月16日 个人战立会议内容报告
- React 点击按钮显示div与隐藏div
- python清空集合_python集合的操作
- Web应用与HTTP协议
- 20165226 实验四 Android程序设计
- Java编译期优化思维导图
- objective-c(iOS5) 中weak和strong使用的区别
- 数据库服务器编码,数据库编码,数据库表编码,数据库表字段编码
- 103 规约分析总结
- 银行管理系统实例(C语言版)
- wps怎么把两张图片组合_如何对word/wps中的多个图片进行组合。 专家详解
- 使用阿里云的【身份证实名认证接口】API核验用户的真实性
- Unity3D自制横版闯关游戏手册(1)
- [20190718]12c rman新特性 表恢复.txt
- 数据库系统头歌实验八 数据库完整性、安全设计
- 前端vue+后台node实现获取微信用户基本信息+调用微信JS-SDK(下篇)
- 推荐背诵的10篇美文
- 安卓中COLOR的值分析
- 【嵌入式 C】嵌入式开发神器—SourceInsight的使用教程