php 函数__autoload与spl_autoload_register理解
理解自: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理解的更多相关文章
- php 加载函数 __autoload(), spl_autoload_register()
来自:http://www.cnblogs.com/myluke/archive/2011/06/25/2090119.html spl_autoload_register (PHP 5 >= ...
- __autoload 与spl_autoload_register()
PHP __autoload函数(自动载入类文件)的使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-02-04 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都 ...
- PHP自动加载(__autoload和spl_autoload_register)
一:什么是自动加载 我们在new出一个class的时候,不需要手动去require或include来导入这个class文件,而是程序自动帮你导入这个文件不需要手动的require那么多class文件了 ...
- 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)
1.函数指针声明的格式及简单的使用 (1)格式:(返回值)(*函数指针名)(参数列表) 例如:声明一个无参数无返回值的函数指针(void)(*p)(void). (2)将函数指针指向某个无参数无 ...
- setdefault函数的用法及理解
setdefault函数的用法及理解 dict.setdefault(key, default=None) 功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于 ...
- PHP中__autoload()与spl_autoload_register()函数的用法与区别
_autoload() 函数在PHP文档中的解释是试图使用尚未被定义的类时自动调用.通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类. 如何理解这句话,我们首先看下面一个简单 ...
- php自动加载的两个函数__autoload和__sql_autoload_register
一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.class.php //文件 <?php class P ...
- 关于C/C++函数指针声明的理解
[前言] 由于最近对函数指针的理解比较模糊,所有又重新学习了一把关于函数指针的知识,参考了很多书籍和网上的文章.现在本人进行一下分享和总结.本文的其实只是整理和总结别人现有的文章,作为备用参考文档. ...
- 对于c语言存储分配程序(malloc函数)实现的理解
内容主要出自<The C Programming Language>一书,不得不说这是一本程序员必读的书,我大二读了前面几章就扔到一边了,直到最近才又拿起来再读,找不到言语来形容我现在后悔 ...
随机推荐
- e681. 基本的打印程序
Note that (0, 0) of the Graphics object is at the top-left of the actual page, outside the printable ...
- (转)PS流格式
概念: 将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(Program Stream). ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码 ...
- dom元素改变监听
function domChange(domId, callback) { // select the target node var target = document.getElementById ...
- c# 异步编程demo (async await)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- div盒子的居中
<html> <title>XXXX</title> <meta charset="utf-8" /> <style type ...
- python 包管理和virturlenv
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- SVN目录权限配置
1.如果要使用SVN,需要有一个项目的保存目录,例如把该目录设为“C:\MyPro”文件夹 2.把该目录发布为SVN项目目录,则需要通过以下命令行 svnadmin create c:\mypro ...
- phpcms v9如何更改分页显示条数?
默认显示页码数有10条,比如想更改成显示3条,例如这样 上一页 1 2 3...34 下一页 更改phpcms\libs\functions\global.func.php,找到分页函数,大概在665 ...
- NHibernate初学五之关联一对多关系
1:创建两张表T_Country.T_Person:其中T_Person表中有一个CountryID对应T_Country的ID,一个Country可以对应多个Person CREATE TABLE ...
- C#获取CPU处理器核心数量的方法_C#教程
https://yq.aliyun.com/ziliao/89096 摘要: 本文讲的是C#获取CPU处理器核心数量的方法_C#教程, 有几条不同的处理器信息,您可以获得有关的信息:物理处理器数量.核 ...