PHP自动加载SPL的四种处理方式
libs目录下有3个类文件:

Test.class.php
<?php
class Test
{
public function __construct()
{
echo "Loading Test.class.php <br>";
}
}
Test.php
<?php class Test
{
public function __construct()
{
echo "Loading Test.php <br>";
}
}
User.php
<?php class User
{
public function __construct()
{
echo "Loading User.php <br>";
}
}
【方法1】
<?php //可以传入多个参数,逗号分隔,多个相同的类名最先找到的最先匹配
spl_autoload_extensions('.class.php,.php'); //设置autoload寻找php定义的类文件的目录,多个目录用PATH_SEPARATOR常量 分隔
$path = get_include_path() . PATH_SEPARATOR . "libs/";
set_include_path($path); //autoload注册
spl_autoload_register(); new Test();
new User();
【方法2】
<?php
//定义__autoload函数,页面运行时会先执行这里面的代码
function __autoload($class_name)
{
require_once "libs/" . $class_name . ".php";
echo "已加载类 " . $class_name . "<br>";
} new Test();
new User();
【方法3】
<?php
//自定义的加载类
function myLoader($class_name)
{
require_once "libs/" . $class_name . ".php";
echo "已加载类 " . $class_name . "<br>";
} //将自定义的类名载入
spl_autoload_register('myLoader'); new Test();
new User();
【方法4】
<?php
//自定义的加载类
function myLoader($class_name)
{
set_include_path("libs/");
spl_autoload($class_name);
echo "已加载类 " . $class_name . "<br>";
} //将自定义的类名载入
spl_autoload_register('myLoader'); new Test();
new User();
以上四种方法都可以自动加载libs目录下面的类,运行结果如下:

【总结】

PHP自动加载SPL的四种处理方式的更多相关文章
- 加载 AssetBundle 的四种方法
[加载 AssetBundle 的四种方法] 1.AssetBundle.LoadFromMemoryAsync(byte[] binary, uint crc = 0); 返回AssetBundle ...
- VUE 动态加载组件的四种方式
动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...
- Andorid上拉加载更多的几种实现方式
1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载 ...
- 使用JavaScript判断图片是否加载完成的三种实现方式
有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 <!DOCTYPE HTML> <html> <head> ...
- 深入解析 composer 的自动加载原理 (转)
深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...
- 深入解析 composer 的自动加载原理
PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演 ...
- Laravel 学习笔记之 Composer 自动加载
说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制. Composer的自动加载机制 1.初始化一个composer项目 在一个空目录下compose ...
- Vue加载组件、动态加载组件的几种方式
https://cn.vuejs.org/v2/guide/components.html https://cn.vuejs.org/v2/guide/components-dynamic-async ...
- laravel5.2总结--composer使用和自动加载介绍
首先看下phpcomposer官方的定义,composer是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer ...
随机推荐
- ssl---阿里云的public.crt和chain.crt的证书怎么弄
由于项目需要,网站需要https服务,服务器是阿里云的,装的是宝塔的面板,下面是详细的配置ssl证书的方法: 如何在阿里云的后台申请ssl证书就不说了,下载下来的证书有三个:.key chain. ...
- MFC接收命令行参数的三种方法
方法一: CString sCmdline = ::GetCommandLine(); AfxMessageBox(sCmdline); 将获取到 "C:\test\app.exe -1 - ...
- hashMap 和linkedHashMap
hashMap是个单向链表的数组 linkedHashMap是个双向链表的数组,modal就是linkedHashMap
- CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】
置置置换 已经提交 已经通过 63.89% Total Submission:72 Total Accepted:46 题目描述 wlswlswls有一个整数nnn,他想请你算一下有多少1...n1. ...
- ES6:export default 和 export 区别
export default 和 export 区别: 1.export与export default均可用于导出常量.函数.文件.模块等 2.你可以在其它文件或模块中通过import+(常量 | 函 ...
- PCIe 复位:Clod reset、warm reset、Hot reset、Function level reset
2015年09月06日 17:06:01 yijingjing17 阅读数:9029 标签: PCIEReSet复位Clod resetwarm reset 更多 个人分类: PCIe ...
- LITTLE-ENDIAN(小字节序、低字节序) BOM——Byte Order Mark 字节序标记 数据在内存中的存放顺序
总结: 1. endian 字节存放次序 字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了). 2. LITTLE-ENDIA ...
- php之变量和常量
PHP中的变量用一个美元符号后面跟变量来表示.变量名是区分大小写的. 变量与PHP中其它的标签一样遵循相同的规则.一个有效的变量名有字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线. 按照 ...
- DOM节点的基础操作
1.寻找节点 //寻找节点 id方法 document.getElementById(); //标准 //寻找节点层次方法 parentNode().firstChild()和lastChild(): ...
- redis分页获取数据
php代码: 采用哈希类型存储数据,有序集合存储分页数据,进行倒序与正序的排序. $getGoodsInfo = M('goods_test')->select(); for($i=0;$i&l ...