php spl_autoload_register

spl_autoload_register  可以同时注册多个自动加载函数。

./kang/H.class.php

<?php

class H {

}

./kang/kang.php

<?php
function kangAutoload($class_name) {
echo ‘kangAutoload<br>‘;
// 先判断当前所需要加载的类,是否为当前模块的
$class_list = array(‘H‘, ‘Z‘, ‘K‘);
if (in_array($class_name, $class_list)) {
require ‘./kang/‘ . $class_name . ‘.class.php‘;
}
}
spl_autoload_register(‘kangAutoload‘);

./user/U.class.php

<?php

class U {

}

./user/user.php

<?php

function userAutoload($class_name) {
echo ‘userAutoload<br>‘;
require ‘./user/‘ . $class_name . ‘.class.php‘;
}
spl_autoload_register(‘userAutoload‘);

./oop_9.php

<?php

// 模块kang
// 载入模块kang.php 核心文件
require ‘./kang/kang.php‘;

$o = new H;
var_dump($o);

echo ‘<br>‘;
// 模块user
require ‘./user/user.php‘;
$b = new U; //当有两个require 的时候,会按照定义的require的先后顺序,逐次的进入
// ~~~~~~~~复制的kang.php <?php
// function kangAutoload($class_name) {
// echo ‘kangAutoload<br>‘;
// 先判断当前所需要加载的类,是否为当前模块的
// $class_list = array(‘H‘, ‘Z‘, ‘K‘);
// if (in_array($class_name, $class_list)) {
// require ‘./kang/‘ . $class_name . ‘.class.php‘;
// }
// }
// spl_autoload_register(‘kangAutoload‘);~~~~~~~~
var_dump($b);

// kangAutoload// 页面的结果:var_dump($o)的结果
// object(H)#1 (0) { } // 页面的结果:var_dump($o)的结果

// kangAutoload//页面的结果:$b = new U; 先去kang里面找,不满足if (in_array($class_name, $class_list))
// userAutoload //页面的结果:$b = new U 去./user/user.php里面找
// object(U)#2 (0) { } //页面的结果:$b = new U

时间: 2024-10-08 17:24:24

php spl_autoload_register的相关文章

spl_autoload_register 自动载入

<?php spl_autoload_register('autoload1');spl_autoload_register('autoload2'); test1::test();test2::test(); function autoload1($class){ include strp(__DIR__).'/'.$class.'.php';} function autoload2($class){ include strp(__DIR__).'/'.$class.'.php';}funct

PHP中spl_autoload_register()函数

spl_autoload_register — 注册给定的函数作为 __autoload 的实现 官方地址:http://php.net/manual/zh/function.spl-autoload-register.php 我的测试 定义三个文件test.php test1.php test2.php test.php <?php spl_autoload_register('autoLoad1'); test1::test();echo "<br/>"; tes

php的spl_autoload_register函数的一点个人见解

这是一篇对spl_autoload_register()函数的个人简单介绍,有需要的同学可以参考,主要是讨论spl_autoload_register()函数所注册的函数的参数的个人一点迷惑. 废话不多说,上代码,还请同学注意看注释. <?php //定义一个函数,功能自动加载类文件 function autoload($class){ //参数$class,不用管它,它自己会以``类的名称``作为参数 //类文件的地址,类文件的格式是$class.class.php $classPath =

PHP中spl_autoload_register()和__autoload()区别分析

关于spl_autoload_register()和__autoload(),相信大多数都会选择前者了? 看两者的用法:代码如下: //__autoload用法 function __autoload($classname) { $filename = "./class/".$classname.".class.php"; if (is_file($filename)) { include $filename; } } //spl_autoload_register

spl_autoload_register && __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) )

PHP中spl_autoload_register函数的用法

spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为 spl_autoload

spl_autoload_register与autoload的区别详解

spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register - 注册__autoload()函数说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们.如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为spl_autoload_regi

自动加载类PHP中spl_autoload_register函数的用法

spl_autoload_register(PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为 spl_autoload_

php spl_autoload_register() 函数

spl_autoload_register()的用法: 其中$this表示当前类,autoload()是我注册的自动加载函数,当然这个只是一个函数名,只要不与php的关键字重复,符合一般函数名的命名规范即可. 使用自动加载之后,当我们在一个类中需要加载很多个其它类文件时,不用频繁使用require()函数,这样代码看起来更加规范,至于性能上是否有很大提升这个需要研究一下php的内核. php是靠zend 引擎解析程序的,zend引擎中存在SPL__autoload栈,当你使用spl_autolo

spl_autoload_register()函数

该函数是一个自动加载函数,如果当我们实例化一个未定义类的时候,就会触发.现在基本上好多主流的框架都使用了延迟加载技术,例如Yii,Tp等等.所以我们也需要了解一下. __autoload() 因为 spl_autoload_register() 是在 __autoload() 的基础上进行封装的,所以我们首先先看一下这个函数. Man.class.php <?php class Man{ public function getInfo(){ echo 'hello world'; } } ?>