• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

几个php中类的自动加载的方法的实例详解

php 搞代码 4年前 (2022-01-22) 19次浏览 已收录 0个评论

本篇文章主要介绍了PHP中类的自动加载的方法。类的自动加载是指在外面的页面中并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。

类的自动加载是指,在外面的页面中,并不需要去“引入”类文件,但是程序会在需要的时候动态加载需要的类文件。

方法1:使用autoload魔术函数

当程序需要某个类时,就会去调用该函数,该函数我们需要自己去定义并在其中写好加载类文件的通用语句。

<?php    //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A     function autoload($className){      require "./21".$className.".class.php";    }    $o1 = new A();    <strong style="color:transparent">9来源gaodai#ma#com搞@代~码$网</strong>搞gaodaima代码$o1->v1 = 10;    echo "<br/>v1:".$o1->v1;  ?>

方法2:使用spl_autoload_register函数

该函数的作用是生命多个可以用来代替autoload函数作用的函数,语法如下:spl_autoload_regist("函数名1");如果用spl_autoload_register,autoload就失效了。

<?php    //注册两个用于自动加载的函数名    spl_autoload_register('auto1');    spl_autoload_register('auto2');    function auto1($className){      $file = "./21".$className.".class.php";      if(file_exists($file)){        require "./21".$className.".class.php";      }    }    function auto1($className){      $file = "./22".$className.".class.php";      if(file_exists($file)){        require "./22".$className.".class.php";      }    }    //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载  ?>

再一个例子:

这里autoload 可兼容以下格式:

Cache_File_Json
class_xxx.php
xxx.class.php
xxx.php

php代码如下:

function autoload($className){ $dirs=explode('_',$className); $fileName=array_pop($dirs); //print_r($dirs); $filePath=$fileName; if(is_array($dirs) && (count($dirs) > 0)){  //echo '\n---\n'; print_r($dirs);  $dirPath='';  foreach ($dirs as $dir){   if($dir){    $dirPath.=strtolower($dir).DIRECTORY_SEPARATOR;   }  }  $filePath=$dirPath.$fileName.'.php'; }else {  if( file_exists('class_'.$fileName.'.php')){   $filePath='class_'.$fileName.'.php';  }else {   if( file_exists($fileName.'.class.php')){    $filePath=$fileName.'.class.php';   } else {    $filePath=$fileName.'.php';   }  } } //var_dump($filePath); require $filePath;}

以上就是几个php中类的自动加载的方法的实例详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:几个php中类的自动加载的方法的实例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址