类的延迟加载(lazy_loading)

类的延迟加载

通常情况下,在一个页面我们会加载多个类,代码如下所示,这种情况下,我们每次运行这个文件都要先加载两个类进入到文件,这样就会影响效率.

<?php
require('class\Class1.php');
require('class\Class2.php');
 
$is_boy = $GET['sex'] == 0 ? true :false;
 
if(is_boy){
  echo "This is a boy";
  $class = new Class1;
}else{
  echo "This is a girl";
  $class = new Class2;
}
?> 

下面我们开始优化一下,我们要用到php的一个函数
spl_autoload_register();这个函数的功能是将函数注册到SPL __autoload函数队列中。如果该队列中的函数尚未激活,
则激活它们。

 
<?php
function my_loader($class){
  require('class\\'.$class.'.php');
}
spl_autoload_register('my_loader');
 
$is_boy = $GET['sex'] == 0 ? true :false;
 
if(is_boy){
  echo "This is a boy";
  $class = new Class1;
}else{
  echo "This is a girl";
  $class = new Class2;
}
?> 

发表评论

发表评论

*

沙发空缺中,还不快抢~