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目录下面的类,运行结果如下:

【总结】

原文地址:https://www.cnblogs.com/kccdzz/p/10340875.html

时间: 2024-11-08 00:14:16

PHP自动加载SPL的四种处理方式的相关文章

加载 AssetBundle 的四种方法

[加载 AssetBundle 的四种方法] 1.AssetBundle.LoadFromMemoryAsync(byte[] binary, uint crc = 0); 返回AssetBundleCreateRequest.Use assetBundle property to get an AssetBundle once it is loaded. Compared to LoadFromMemory, this version will perform AssetBundle deco

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

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.有三种方式实现,下面一一介绍. 一.load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - load event</title> </head> <body> <img id="img1" src="http:/

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

1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载,底部加载更多的方式就显得更人性化,今天就把用过的几种方式总结一下. 2.上拉加载更多的实现方式 ListView控件;作为一种传统列表展现的方式,ListView控件的addHeaderView(...).addFooterView(...)方法很方便的支持头布局.脚布局,参数就是打气筒打出来的布

CSS四种引入方式

第一种直接在属性标签后添加CSS代码,可读性差,不推荐使用. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--第一种引入方式--> <div style="color: red;backg

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

深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状(trait).闭包.接口.PSR 规范.以及 composer 的出现已经让 PHP 变成了一门现代化的脚本语言.PHP 的生态系统也一直在演进,而 composer 的出现更是彻底的改变了以往构建 PHP 应用的方式,我们可以根据 PHP 的应用需求混合搭配最合适的 PHP 组件.当然这也得益于

Laravel 学习笔记之 Composer 自动加载

说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制. Composer的自动加载机制 1.初始化一个composer项目 在一个空目录下composer安装Laravel的容器Container包: composer require illuminate/container 然后在该目录下新建一个index.php文件,然后分析下Container类为何能被实例化: <?php /** * Created by PhpStorm. * User:

PHP命名空间和自动加载初探

参考资料: PHP手册-语言参考:http://php.net/manual/zh/language.namespaces.php 概要: 1. 声明了命名空间之后,下面的const, function, class都会划归到该命名空间. 2. 只有声明过命名空间的PHP 文件才能加载有命名空间的PHP文件. 3. PHP 5.3 及以上才能使用命名空间 名词: 关键字:namespace 用来声明 本PHP文件的命名空间 常量:__NAMESPACE__ 用来返回当前命名空间的名称 默认为空字

PHP7 学习笔记(四)PHP PSR-4 Autoloader 自动加载

参考文献: 1.PHP PSR-4 Autoloader 自动加载(中文版) 2.PHP编码规范(中文版)导读 3.PHP-PSR-[0-4]代码规范

Phalcon自动加载(PHP自动加载)

自动加载(phalcon\Loader) 转载请注明来源 一.php文件引入 通过 include() 或 require() 函数,可以在PHP程序执行之前在该文件中插入一个文件的内容. 区别:处理错误的方式不同.include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行) * 正因为在文件不存在或被重命名后脚本不会继续执行,因此我们推荐使用 require() 而不是 include().