Yii框架之--类的延迟加载实例说明
类的延迟加载 (lazy loading)
以例子的方式解释
现有三个类,Class1.php、Class2.php、index.php
在index中:
require("ClassClass1.php");
require("ClassClass2.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("ClassClass1.php");
$class1 = new Class1;
}else{
echo "this is not girl";
require("ClassClass2.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;
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。