首页 > php教程 > php手册 > 正文

PHP基础之Autoload

php中文网
发布: 2016-06-21 08:48:32
原创
1273人浏览过

PHP的自动加载autoload机制很重要,这里做2个小练习

 

立即学习PHP免费学习笔记(深入)”;

原创文章,转载请注明:http://www.cnblogs.com/phpgcs

 

立即学习PHP免费学习笔记(深入)”;

文件结构如下,2种方式实现自动加载

 

立即学习PHP免费学习笔记(深入)”;

1,自定义函数

 

立即学习PHP免费学习笔记(深入)”;

2,spl_autoload_register()

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

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

 

立即学习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

  

 

立即学习PHP免费学习笔记(深入)”;

首先看自定义函数方式:

 

立即学习PHP免费学习笔记(深入)”;

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

    print_r(get_included_files());

硅基智能
硅基智能

基于Web3.0的元宇宙,去中心化的互联网,高质量、沉浸式元宇宙直播平台,用数字化重新定义直播

硅基智能 62
查看详情 硅基智能

    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/');

 

立即学习PHP免费学习笔记(深入)”;

    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');

        }

    }

 

立即学习PHP免费学习笔记(深入)”;

    $a = new aClass();

    $b = new bClass();

    print_r(get_included_files());

?>

  运行结果如下:

 

立即学习PHP免费学习笔记(深入)”;

+ View Code

  

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

第二种方式:

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

    class myLoader{

        public static function autoload($className){

            $filename = './include/'.$className.'.php';

            if(file_exists($filename)){

                include_once $filename;

            }else{

                exit('no file');

            }

        }

    }

 

立即学习PHP免费学习笔记(深入)”;

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

 

立即学习PHP免费学习笔记(深入)”;

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

 

立即学习PHP免费学习笔记(深入)”;

    /**

    *__autoload 方法在 spl_autoload_register 后会失效,因为 autoload_func 函数指针已指向 spl_autoload 方法

    * 可以通过下面的方法来把 _autoload 方法加入 autoload_functions list

    */

    //spl_autoload_register( '__autoload' );

 

立即学习PHP免费学习笔记(深入)”;

 

立即学习PHP免费学习笔记(深入)”;

    error_reporting(E_ALL^E_NOTICE^E_WARNING^E_ERROR);

    error_reporting(E_NOTICE E_WARNING );

 

立即学习PHP免费学习笔记(深入)”;

    $a = new aClass();

    print_r(get_included_files());

    echo EOL;

    $b = new bClass();

    echo EOL;

?>

  



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号