理解自:http://www.cnblogs.com/myluke/archive/2011/06/25/2090119.html

__autoload的作用:当我们在一个页面使用其他文件的类方法时候,经常使用的是require ,require_once ,include,include_once,

比如我们有data.php

<?php
class Data {
public static function delData() {
var_dump('del data');
}
}

当我们想在person.php中使用data.php的内容时,可以这样

<?php
class Data {
public static function delData() {
var_dump('del data');
} public static function catchData() {
echo '我就和你嘿嘿嘿';
}
}

但是,如果有100个界面时,我们还都要一个个的require_once进来吗?

__autoload的作用就出来,当我们调用一个从未定义的类时,就会加载__autoload方法,你可以使用__autoload方法加载文件

比如.

auto.php

<?php
function __autoload($className){
$className = $className.'.php';
if(is_file($className)){
require_once "$className";
}
}

person.php

<?php
require_once 'auto.php';
Data::delData();

那 spl_auto_register()有什么作用呢?

他可以加载自己写的函数来覆盖__autoload()函数

auto_register.php

<?php
function load($className){
$fileName = $className.'.php';
if(is_file($fileName)){
require_once "$fileName";
}
}
spl_autoload_register('load');

person.php

<?php
//require_once 'auto.php';
require_once 'spl_auto_register.php';
Data::delData();
Data::catchData();

输出

string

 'del data' (length=8)

我就和你嘿嘿嘿

php 函数__autoload与spl_autoload_register理解的更多相关文章

  1. php 加载函数 __autoload(), spl_autoload_register()

    来自:http://www.cnblogs.com/myluke/archive/2011/06/25/2090119.html spl_autoload_register (PHP 5 >= ...

  2. __autoload 与spl_autoload_register()

    PHP __autoload函数(自动载入类文件)的使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-02-04   在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都 ...

  3. PHP自动加载(__autoload和spl_autoload_register)

    一:什么是自动加载 我们在new出一个class的时候,不需要手动去require或include来导入这个class文件,而是程序自动帮你导入这个文件不需要手动的require那么多class文件了 ...

  4. 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)

    1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表)    例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...

  5. setdefault函数的用法及理解

    setdefault函数的用法及理解 dict.setdefault(key, default=None) 功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于 ...

  6. PHP中__autoload()与spl_autoload_register()函数的用法与区别

    _autoload() 函数在PHP文档中的解释是试图使用尚未被定义的类时自动调用.通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类. 如何理解这句话,我们首先看下面一个简单 ...

  7. php自动加载的两个函数__autoload和__sql_autoload_register

    一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.class.php //文件 <?php class P ...

  8. 关于C/C++函数指针声明的理解

    [前言] 由于最近对函数指针的理解比较模糊,所有又重新学习了一把关于函数指针的知识,参考了很多书籍和网上的文章.现在本人进行一下分享和总结.本文的其实只是整理和总结别人现有的文章,作为备用参考文档. ...

  9. 对于c语言存储分配程序(malloc函数)实现的理解

    内容主要出自<The C Programming Language>一书,不得不说这是一本程序员必读的书,我大二读了前面几章就扔到一边了,直到最近才又拿起来再读,找不到言语来形容我现在后悔 ...

随机推荐

  1. JS中document对象详解

    转自:http://www.cnblogs.com/andycai/archive/2010/06/29/1767351.html 对象属性 document.title //设置文档标题等价于HTM ...

  2. Ubuntu下,如何解决Unable to locate package

    在虚拟机上新装了一个ubuntu 12.10,想在上面装一个Git,却发生了以下错误信息 我觉得原因可能是我换了163的源,没有更新所以找不到这个包. 这时候就要使用 sudo apt-get upd ...

  3. js得到当前文档的编码:document.characterSet

    <!DOCTYPE HTML> <html > <head> <meta charset="utf-8"> <!--meta ...

  4. 浮点纹理 opengl

    原文地址:http://wangqingyun84.blog.163.com/blog/static/790836172010323113604/ 因为 glsl部分 绑定fbo 看到要用浮点纹理,搜 ...

  5. 感谢各位亲们的大力支持,免费的HTML5学习课程《HTML5网页开发实例具体解释》连载已经结束了!

    感谢各位亲们的大力支持,免费的HTML5学习课程<HTML5网页开发实例具体解释>连载已经结束了.  有兴趣的读者能够看我的博客,也能够看以下的链接逐个学习: 当里个当.免费的HTML5连 ...

  6. Ubuntu Server 下配置静态网络的方法

    这几天一直在弄hadoop的集群,由于公司的网络原因,偶尔要重启路由器,如果网络是由路由器自动配置的话, 非常容易变换IP,这样的话,SSH无密码验证登陆到其他机器发送的配置文件*.pub就用不了,因 ...

  7. XP 终端服务组件 ,SP3 多用户补丁(替换)文件

    如附件 termsrv.dll   5.1.2600.5512 目前存在一个问题:每个用户只能使用一个会话.不能像2003+那样,一个用户使用多个会话. 待查找解决方案中............... ...

  8. Invalidate()函数

    Invalidate( ) :使整个窗口客户区无效, 并进行更新显示的函数 介绍 void Invalidate( BOOL bErase = TRUE ); 参数: bErase 决定了是否要在WM ...

  9. 几张图轻松理解String.intern()

    https://blog.csdn.net/soonfly/article/details/70147205 在翻<深入理解Java虚拟机>的书时,又看到了2-7的 String.inte ...

  10. Spring----Spring Boot Rest的使用方法

    1.下载Google浏览器并安装插件 转载: http://chromecj.com/web-development/2015-03/401/download.html 打开Google浏览器-> ...