首页 后端开发 php教程 php自动加载autoload机制示例分享_php实例

php自动加载autoload机制示例分享_php实例

May 17, 2016 am 08:48 AM
autoload 自动加载

1,自定义函数

2,spl_autoload_register()

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ ll ./*
-rw-rw-r-- 1 liuyuan liuyuan  800 Feb 19 11:39 ./func_autoload.php
-rw-rw-r-- 1 liuyuan liuyuan  906 Feb 19 11:28 ./spl_autoload.php

./include:
total 16
drwxrwxr-x 2 liuyuan liuyuan 4096 Feb 19 11:42 ./
drwxrwxr-x 3 liuyuan liuyuan 4096 Feb 19 11:43 ../
-rw-rw-r-- 1 liuyuan liuyuan  142 Feb 19 11:42 aClass.php
-rw-rw-r-- 1 liuyuan liuyuan  143 Feb 19 11:42 bClass.php

首先看自定义函数方式:

复制代码 代码如下:

    define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '');
    print_r(get_included_files());
    echo EOL;
    print get_include_path();
    echo EOL;
    //set_include_path(get_include_path().PATH_SEPARATOR.'/var/www/ly_php/php_spl/include/');
    //set_include_path(dirname(__FILE__).'/include');
    //set_include_path(dirname(__FILE__).'/include/');

    function __autoload($className){
        $filename = './include/'.$className.'.php';
        //$filename = './include/'.$className.'.php';
        //$filename = '/var/www/ly_php/php_spl/include/'.$className.'.php';
        if(file_exists($filename)){
            include_once $filename;
        }else{
            exit('no file');
        }
    }

    $a = new aClass();
    $b = new bClass();
    print_r(get_included_files());
?>

运行结果如下:

复制代码 代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload$ php func_autoload.php
Array
(
    [0] => /var/www/phpgcs/php_autoload/func_autoload.php
)

.:/usr/share/php:/usr/share/pear
aClass is loaded
bClass is loaded
Array
(
    [0] => /var/www/phpgcs/php_autoload/func_autoload.php
    [1] => /var/www/phpgcs/php_autoload/include/aClass.php
    [2] => /var/www/phpgcs/php_autoload/include/bClass.php
)

第二种方式:

复制代码 代码如下:

    class myLoader{
        public static function autoload($className){
            $filename = './include/'.$className.'.php';
            if(file_exists($filename)){
                include_once $filename;
            }else{
               退出('无文件');
            }
        }
    }

    define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
');

    spl_autoload_register(array('myLoader', 'autoload'));

    /**
    *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法
    * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list
    */
    //spl_autoload_register( '__autoload' );

 
    error_reporting(E_ALL^E_NOTICE^E_WARNING^E_ERROR);
    error_reporting (E_NOTICE | E_WARNING );

    $a = new aClass();
    print_r(get_included_files());
    echo EOL;
    $b = new bClass();
echo EOL;
?>

运行结果如下:

复制代码代码如下:

liuyuan@ebuinfo:/var/www/phpgcs/php_autoload $ php spl_autoload.php
aClass 已加载
数组
(
    [0] => /var/www/phpgcs/php_autoload/spl_autoload.php
    [1] => / var/www/phpgcs/php_autoload/include/aClass.php
)

bClass 已加载
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP中的自动加载机制 PHP中的自动加载机制 Jun 18, 2023 pm 01:11 PM

随着PHP语言越来越受欢迎,开发人员需要使用越来越多的类和函数。当项目规模扩大时,手动引入所有依赖项将变得不切实际。这时候就需要一种自动加载机制来简化代码开发和维护过程。自动加载机制是一种PHP语言的特性,可以在运行时自动载入所需的类和接口,并减少手动的类文件引入。这样,程序员可以专注于开发代码,减少因繁琐的手动类引入而产生的错误和时间浪费。在PHP中,一般

如何利用PHP7的命名空间和自动加载机制组织代码的结构? 如何利用PHP7的命名空间和自动加载机制组织代码的结构? Oct 20, 2023 am 08:57 AM

如何利用PHP7的命名空间和自动加载机制组织代码的结构?摘要:随着PHP7的推出,命名空间和自动加载机制成为了PHP开发中不可忽视的重要特性。本文将介绍如何利用PHP7的命名空间和自动加载机制来组织代码的结构,并通过具体的代码示例进行说明。一、什么是命名空间?命名空间是PHP7引入的一种机制,用于解决不同类库或代码文件之间可能出现的命名冲突问题。通过命名空间

JavaScript 如何实现滚动到页面底部自动加载的内容缩放并保持纵横比效果? JavaScript 如何实现滚动到页面底部自动加载的内容缩放并保持纵横比效果? Oct 27, 2023 pm 12:36 PM

JavaScript如何实现滚动到页面底部自动加载的内容缩放并保持纵横比效果?在现代网页设计中,滚动到页面底部自动加载更多内容已经成为了常见的功能需求。而当加载的内容包含图片时,我们常常希望这些图片能够保持原有的纵横比。本文将介绍如何使用JavaScript来实现这个功能,并提供相应的代码示例供参考。首先,我们需要获取页面滚动的位置。在JavaScr

如何在PHP中使用Composer进行自动加载 如何在PHP中使用Composer进行自动加载 Jun 23, 2023 am 10:27 AM

Composer是PHP中一个非常流行的依赖管理工具,可以帮助我们管理项目中需要的第三方库和组件,并自动加载这些库和组件。本文将介绍如何在PHP中使用Composer进行自动加载。安装Composer首先,你需要安装Composer。你可以在https://getcomposer.org/download/下载Composer的最新版本并安装。初始化Comp

自动加载和命名空间在 Composer 中如何运作? 自动加载和命名空间在 Composer 中如何运作? Jun 04, 2024 pm 09:03 PM

自动加载和命名空间在Composer中的运作方式:自动加载:Composer利用自动加载特性,在需要时自动加载类,省去了手动调用的繁琐。命名空间:命名空间可组织代码,避免相同类名冲突。Composer通过PSR-4标准支持命名空间,指定命名空间和目录之间的映射。实战案例:使用第三方库时,在composer.json中配置require和autoload部分,指定库名称和映射规则。这使我们可以直接使用库中的类,无需手动加载文件。

JavaScript 如何实现滚动到页面底部自动加载的内容淡入效果? JavaScript 如何实现滚动到页面底部自动加载的内容淡入效果? Oct 16, 2023 am 09:09 AM

JavaScript如何实现滚动到页面底部自动加载的内容淡入效果?在现代的网页设计中,实现滚动到页面底部自动加载内容并且带有淡入效果是非常常见的需求。本文将以JavaScript为例,介绍如何实现这一效果。首先,我们需要利用JavaScript监听页面滚动事件。当滚动到页面底部时,我们将触发加载新内容的函数。//监听页面滚动事件window.addEv

JavaScript 如何实现滚动到页面底部自动加载的内容渐变显示效果? JavaScript 如何实现滚动到页面底部自动加载的内容渐变显示效果? Oct 16, 2023 am 08:54 AM

JavaScript如何实现滚动到页面底部自动加载的内容渐变显示效果?在现代的网页设计中,滚动到页面底部自动加载内容是一个常见的需求。而为了提升用户体验,渐变显示效果也是一个常见的设计选项。那么,在JavaScript中,我们如何进行实现呢?下面将给出具体的实现步骤和代码示例。实现该效果的主要思路是监听页面的滚动事件,并根据滚动位置来判断是否到达页面底

PHP 自动加载大师班:成为一名代码加载专家 PHP 自动加载大师班:成为一名代码加载专家 Mar 02, 2024 pm 09:43 PM

PHP自动加载介绍PHP自动加载是一种机制,允许php在需要时自动加载类,而无需手动包含文件。这极大地简化了大型应用程序的开发,并提高了代码的可维护性。命名空间和自动加载PHP中的命名空间用于组织代码。当使用命名空间声明的类需要被加载时,PHP将执行自动加载流程。自动加载器负责根据命名空间和类名查找并加载相应的类文件。使用Composer实现自动加载Composer是PHP社区中用于依赖管理和自动加载的标准工具。安装Composer后,您可以使用以下步骤配置自动加载://composer.JSO

See all articles