Blogger Information
Blog 39
fans 0
comment 0
visits 34080
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
自动加载多级空间结构名称--2019/08/05
LISTEN的博客
Original
650 people have browsed it

创建一个类, 它的命名空间必须它所在绝对路径完全一致, 使用spl_autoload_register()实现它的自动加载...., 必须要用到多级空间结构名称

1、Loader.php 自动加载函数代码

实例

<?php
namespace _0805test;


class Loader
{
    public static function autoLoader()
    {
        //`spl_autoload_register(callback)`: 通过回调自动加载外部文件
        spl_autoload_register(function ($className){
            $path=str_replace('\\','/',$className);
            $path=__DIR__.'/'.$path.'.php';
//            file_exists() 函数检查文件或目录是否存在。
            if(file_exists($path)){
                require $path;
            }
        });
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、my_work.php  运行测试代码

实例

<?php
namespace _0805test;

require 'Loader.php';
Loader::autoLoader();

use inc\one\dog;
use inc\one\two\Test;
use inc\one\two\Test2 as T2;

echo dog::getInfo();

echo  Test::getInfo();

echo  T2::getInfo2();

运行实例 »

点击 "运行实例" 按钮查看在线实例

3、dog.php 二级 dog 类

实例

<?php

namespace inc\one;


class dog
{
    public static function getInfo()
    {
        echo '这是二级 dog 类:<br>';
        echo '当前命名空间:';
        return __NAMESPACE__.'<br>'.__METHOD__.'<hr>';

    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4、Test.php  三级 test 类

实例

<?php
namespace inc\one\two;
class Test
{
    public static function getInfo()
    {
        echo '这是三级 test 1 类:<br>';
        echo '当前命名空间:';
        return __NAMESPACE__.'<br>'.__METHOD__.'<hr>';

    }

}

class Test2
{
    public static function getInfo2()
    {
        echo '这是三级 test 2 类:<br>';
        echo '当前命名空间:';
        return __NAMESPACE__.'<br>'.__METHOD__.'<hr>';

    }

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

类的目录结构图

1.png


运行结果:

2.png


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
Author's latest blog post