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的四种处理方式的更多相关文章

  1. 加载 AssetBundle 的四种方法

    [加载 AssetBundle 的四种方法] 1.AssetBundle.LoadFromMemoryAsync(byte[] binary, uint crc = 0); 返回AssetBundle ...

  2. VUE 动态加载组件的四种方式

    动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...

  3. Andorid上拉加载更多的几种实现方式

    1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载 ...

  4. 使用JavaScript判断图片是否加载完成的三种实现方式

    有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 <!DOCTYPE HTML> <html> <head> ...

  5. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  6. 深入解析 composer 的自动加载原理

    PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演 ...

  7. Laravel 学习笔记之 Composer 自动加载

    说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制. Composer的自动加载机制 1.初始化一个composer项目 在一个空目录下compose ...

  8. Vue加载组件、动态加载组件的几种方式

    https://cn.vuejs.org/v2/guide/components.html https://cn.vuejs.org/v2/guide/components-dynamic-async ...

  9. laravel5.2总结--composer使用和自动加载介绍

    首先看下phpcomposer官方的定义,composer是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer ...

随机推荐

  1. libuv示例代码

    https://github.com/nikhilm/uvbook/tree/master/code

  2. IIS 6的日志time-taken字段没有值的解决方案

    1.IIS 6网站的活动日志格式选择“W3C 扩展日志文件格式”. 2.日志记录属性的高级选项卡,扩展属性列表勾选time-taken.

  3. 在Android源码中查找Java代码中native函数对应的C++实现

    Android源码中很多关键代码都是C++实现的,java通过jni来调用,经常会看到java中这样的代码: static native Thread currentThread(); 如何根据方法名 ...

  4. 180425、cookie工具类

    package com.thinkgem.jeesite.common.utils; import java.io.UnsupportedEncodingException; import java. ...

  5. centos下nginx的启动

    今天下载了个nginx,编译安装之后,无法启动,以前的启动方法无法实现(services nginx start), 在网上找了半天,才找到一个方法,与大家分享: 命令如下: 启动:/usr/loca ...

  6. 洛谷P1216 数字三角形【dp】

    题目:https://www.luogu.org/problemnew/show/P1216 题意: 给定一个三角形.从顶走到底,问路径上的数字之和最大是多少. 走的时候可以往左下(实际上纵坐标不变) ...

  7. 浅析原生js模仿addclass和removeclass

    //判断有没有class hasClass(elements, cName) { return !!elements.className.match(new RegExp("(\\s|^)& ...

  8. Node.js编程规范

    摘自:https://github.com/dead-horse/node-style-guide https://github.com/felixge/node-style-guide 2空格缩进 ...

  9. Amazon Aurora: Design Considerations for High Throughput Cloud-Native Relational Databases

    INTRODUCTION   In modern distributed cloud services, resilience and scalability are increasingly ach ...

  10. 转:ActiveMQ的作用总结(应用场景及优势)

    原文地址: ActiveMQ的作用总结(应用场景及优势) 业务场景说明: 消息队列在大型电子商务类网站,如京东.淘宝.去哪儿等网站有着深入的应用, 队列的主要作用是消除高并发访问高峰,加快网站的响应速 ...