Blogger Information
Blog 14
fans 1
comment 0
visits 4546
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
深刻理解类的自动加载,并在实例中实现它
叫我孙大树
Original
336 people have browsed it
<?php
//自动加载,早期版本是使用一个名为__autoload的函数,但在php7被废弃。
//因此使用spl_autoload_register代替它。
//PHP环境:Unix系统,php8.1版本。
//介绍下自写自动加载器的目录结构:
//根文件夹,名称:a0818,里面包含‘normal’,‘test’这两个目录和一个autoloade.php文件。
//其中,‘normal’目录中包含一个user.php文件;‘test’目录包含一个hello.php文件。
//user.php为入口文件。
//下面为每个php文件具体内容。

//user.php
namespace normal;
require '../autoloade.php';
use test\hello;

$a = new hello;
echo $a->sayHello().'<br>';
echo hello::say();


//hello.php
namespace test;


class hello{
    public function sayHello(){
        return 'hello world';
    }
    public static function say(){
        return'hello';
    }
}

//autoload.php
//保留了编写该文件的调试过程
spl_autoload_register(function ($class){
//    print_r($class);//内容为a0818\test\hello
    $class = str_replace('\\',DIRECTORY_SEPARATOR,$class);
//    echo __DIR__;
//    die();
    require __DIR__.DIRECTORY_SEPARATOR.$class.'.php';
});
此时,user.php的执行结果为:

屏幕截图 2022-08-17 073406.jpg

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments