• 售前

  • 售后

热门帖子
入门百科

PHP类的自动加载机制实现方法分析

[复制链接]
亲亲阳光非 显示全部楼层 发表于 2021-10-26 14:07:46 |阅读模式 打印 上一主题 下一主题
本文实例陈诉了PHP类的自动加载机制实现方法。分享给各人供各人参考,详细如下:
Test1.class.php
  1. <?php
  2. class Test1
  3. {
  4.   public static function test() {
  5.     echo "hello,world!\n";
  6.   }
  7. }
复制代码
Test2.class.php
  1. <?php
  2. class Test2
  3. {
  4.   public static function test() {
  5.     echo "你好,世界!\n";
  6.   }
  7. }
复制代码
test.php
  1. <?php
  2. Test1::test();
复制代码
假如直接写,会报错
Fatal error: Class 'Test1' not found in /home/wwwroot/default/codelabs/test.php on line 3
须要引入文件
  1. <?php
  2. require "Test1.class.php";
  3. Test1::test();
复制代码
这样就可以访问了。
但是,假如类越来越多,引入的代码就越来越多。
这个时候须要使用
  1. __autoload
复制代码
方法。
  1. <?php
  2. Test1::test();function __autoload($class) {  //require "Test1.class.php";  //require "Test2.class.php";  require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径}
复制代码
当程序发现没有引入类时,会自动调用这个方法,引入类文件。
进一步优化升级,
支持多个自动加载。
  1. <?php
  2. spl_autoload_register('__autoload1');
  3. spl_autoload_register('__autoload2');
  4. Test1::test();
  5. Test2::test();
  6. // 当检测到无类加载时,会自动调用这个方法
  7. function __autoload1($class) {
  8.   //require "Test1.class.php";
  9.   //require "Test2.class.php";
  10.   require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径
  11. }
  12. function __autoload2($class) {
  13.   //require "Test1.class.php";
  14.   //require "Test2.class.php";
  15.   require __DIR__."/".$class.".class.php"; // __DIR__是当前目录的绝对路径
  16. }
复制代码
很好,很强盛!
更多关于PHP相干内容感爱好的读者可查看本站专题:《php面向对象程序计划入门教程》、《PHP数组(Array)操纵本领大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操纵入门教程》及《php常见数据库操纵本领汇总》
盼望本文所述对各人PHP程序计划有所帮助。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作