比__autoload 更灵活的 spl_autoload_register 用法

举报
1_bit 发表于 2021/05/26 16:42:32 2021/05/26
【摘要】 直接上代码了: <?php function loadclass( $class ) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register( 'loadclass' ); $obj = new Test1(); $obj-&g...

直接上代码了:

<?php function loadclass( $class ) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register( 'loadclass' ); $obj = new Test1(); $obj->TestFunction(); ?>
  
 
  • 1

以上php代码有一个函数loadclass有一个参数class;
file变量为class变量+php后缀;
判断是否存在这个文件,如果存在那么就引入。

接下来使我们spl_autoload_register函数,这个函数在我们如果新建一个类,但是这个类并没有在当前文件声明,或者是未包含的情况。言而总之就是说当这个类引用不到的情况下将会调用;换一个词说就是会触发这个函数。

我们看我们下一行我们new Test1这个类,可是我们在这里没有声明,那么将会触发spl_autoload_register函数执行loadclass方法,那么在这里loadclass方法将会传入一个class,那么这个class就是我们的Test1这个字符串,因为我们new的这个变量是Test1这个类。

那么将这个类引入到当前文件后,那么我们调用就没问题了,我们下面列出我们的Test1类中内容:

<?php
class Test1 { function TestFunction() {
  echo 'hello world';
 }
}
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

运行如下:
运行结果

文章来源: i1bit.blog.csdn.net,作者:A757291228,版权归原作者所有,如需转载,请联系作者。

原文链接:i1bit.blog.csdn.net/article/details/56941788

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。