Yii框架之--类的延迟加载实例说明

本文通过实例介绍PHP中类的延迟加载技术,演示如何仅在需要时加载类文件,提高程序运行效率。利用PHP自带的spl_autoload_register函数实现动态加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类的延迟加载 (lazy loading)

以例子的方式解释

现有三个类,Class1.php、Class2.php、index.php
在index中:

require('Class\Class1.php');
    require('Class\Class2.php');
    $is_girl = $__GET['sex'] == 0?ture:false;
    if($is_girl){
        echo 'this is girl';
        $class1 = new Class1;
    }else{
        echo 'this is not girl';
        $class1 = new Class2;
    }

本例存在的问题:只实例化一个类,但同时加载了两个类,因此优化为:

$is_girl = $__GET['sex'] == 0?ture:false;
    if($is_girl){
        echo 'this is girl';
        require('Class\Class1.php');
        $class1 = new Class1;
    }else{
        echo 'this is not girl';
        require('Class\Class2.php');
        $class1 = new Class2;
    }

这就是一个简单的延迟加载案例~!!!!!!
真正的延迟加载,用到一个函数spl_autoload_register();
重复以上面的例子

function mu_loader($class){
        require('Class\\'.$class.'.php');
    } 
    spl_autoload_register('my_loader');//
    $is_girl = $__GET['sex'] == 0?ture:false;
    if($is_girl){
        echo 'this is girl';
        $class1 = new Class1;//当实例化未知类时,调用spl_autoload_register('my_loader'),进行加载该类
    }else{
        echo 'this is not girl';
        $class1 = new Class2;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值