php面向对象中的魔术方法之__autoload()

在开发大一点的项目的时候常把一个个的独立模块封装成一个类,然后在需要的逻辑里直接include进来就可以用了,可是在要引用多个类的时候就得写多个include。好在php提供了一个魔术方法来解决这个问题,那就是__autoload().__autoload()方法可以自动加载要include的类文件。

注意:1、__autoload()是唯一一个不是写类时原魔术方法。2、__autoload()会按类名严格进行对文件名的大小写匹配,如果发现某个类没有成功加载,请检查文件名和类名的大小写。以下是一个简单的实例代码。(注意文件存放目录

/test/test.php
function __autoload($filename){
 if(file_exists('./class/'.$filename.'.class.php')){
  include('./class/'.$filename.'.class.php');
 }else{
  return false;
 }
}
$coderbolg = new CoderBolg();
echo $coderbolg->printbolg(); // 输出 欢迎来到蓝色夏威夷的博客.
$bluehawaii = new BlueHawaii();
echo $bluehawaii->printwelcome(); // 输出 welcome to Hawaii.
/test/class/BlueHawaii.class.php
class BlueHawaii{
 function printwelcome(){
  return 'welcome to Hawaii. ';
 }
}
/test/class/CoderBolg.class.php
class CoderBolg{
 function printbolg(){
  return '欢迎来到蓝色夏威夷的博客. ';
 }
}
 

评论列表

  • 暂无评论,快说两句吧

发表评论

(必填)
(便于交流,可选)
  (支持Ctrl+Enter快捷回复)