Blogger Information
Blog 23
fans 0
comment 0
visits 13632
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
20191010 作业
王长中的博客
Original
593 people have browsed it

一,分级命名空间

      分级命名空间可以允许我们定义分级空间,来展示空间与空间之间的层级关系。

     如有以下几个命名空间:

                                       a.  namespace _1011

                                       b. namespace _1011\one

                                       c. namespace _1011\two

       通过定义分级命名空间,可以看出命名空间b和c都是a的分级空间,它们之间存在层级关系;

在调用分级空间里的元素时,由于分级空间名太长,容易因空间重名引起命名冲突,可以用关键字USE来给分级空间定义一个别名,如将上面的c空间定义一个别名,语法如下:

                                                                     use namespace _1011\two as C;

      使用use定义别名时,默认从全局开始;

      如果省略as ,那么当前类的别名,就是当前类的去掉空间名称的类名;

二,类的自动加载

      类的自动加载,主要通过动态改变引用 类 所在文件的文件名,实现自动引用类所在的文件,来实现类的自动加载;

如:在demo1文件中有个类class demo1,

实例

class demo1{
    public $name;
    public function __construct($name){
        $this->name=$name;
    }
    public function get(){
        echo $this->name;
    }
}

运行实例 »

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

      需要在demo2中实现自动加载类demo1,就要在脚本文件demo2中实现对文件demo1的引用,通过处理要加载的类名来获取类所在的脚本文件路径,代码如下:

实例

spl_autoload_register(function ($className) {
    $path = str_replace('\\', DIRECTORY_SEPARATOR, $className);
    $path = __DIR__ . '/' . $path.'.php';
    include $path;
});

运行实例 »

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

     对类demo1实例化,传入参数

实例

$obj=new demo1('wcz');
$obj->get();

运行实例 »

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

得到输出结果:wcz

总结:类的自动加载前提是类名要与所在的脚本文件相同才可以;

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