批改状态:合格
老师批语:
非限定名称:相对于"当前路径",类名前无“空间前缀”限定名称:相对于"相对路径",类名前存在“非全局开始的空间前缀”完全限定名称:相对于"绝对路径",类名前存在“全局开始的空间前缀”
<?php// 父空间namespace No1 {class Hello{}// 1. 非限定名称: Hello, 相当于“当前路径”echo Hello::class.' 这是非限定', '<br>';// 2. 限定名称: No2\Hello,相当于“相对路径”echo No2\Hello::class.' 这是限定', '<br>';// 3. 完全限定名称: \NON\Hello, 相当于“绝对路径”echo \NON\Hello::class.' 这是完全限定', '<hr>';}// 子空间namespace No1\No2 {class User{}}// 其它空间namespace NON {class User{}}

先创建两个php文件:zy2.php,zy2-1.php
<?php// 使用别名的原因有二个: 简化, 重名namespace Php1;// 加载它require 'zy2-1.php';// 当前空间引用一个与自己无关联的类,需要使用完全限定名称$user = new \Php2\IndexModel;var_dump($user);echo '<br>';// 导入空间别名,来简化类名称// use 默认导入就是一个“完全限定名称”use Php2\IndexModel as Index;// 别名访问$index = new index;var_dump($index);echo '<br>';// 如果通过别名导入的类,与当前空间的类命名冲突class IndexModel{}$user = new IndexModel;var_dump($user);echo '<hr>';
<?phpnamespace Php2;class IndexModel{// ...}

先创建一个文件zy3.php,在同级创建一个文件夹zdjzq,在zdjzq文件夹中再创建一个models文件夹;接下来在model文件下新建两个文件:DqkjsModel.php与YinrModels.php;
<?php// 自动加载// 将类空间名称与类文件所在的路径进行映射,实现自动加载namespace zdjzq;use zdjzq\models\DqkjsModel;use zdjzq\models\YinrModels;// 使用自动加载器require 'app/loader.php';$dqkjs = new DqkjsModel;$yinr = new YinrModels;var_dump($dqkjs,$yinr);echo '<hr>';
<?phpnamespace zdjzq\models;class DqkjsModel{// ...}
<?phpnamespace zdjzq\models;class YinrModels{// ...}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号