批改状态:合格
老师批语:命名空间在后面的框架中很有用
用关键字
namespace来声明命名空间namespace 空间名称;
非限定名称:成员前面不添加任何的空间名称,包括\,相当于当前路径
限定名称:成员前面至少要有1个命名空间和1个反斜线\, 且反斜线\不能在首位, 相当于相对路径
完全限定名称:第一个字符一定是反斜线(反斜线代表根空间), 然后再跟上命名空间,相当于绝对路径
非限定名称:可应用于访问当前命名空间里的成员
限定名称:可应用于访问下级命名空间里的成员
完全限定名称:可应用于所有场景,不管当前处在哪个空间下,利用完全限定名称都可访问到指定成员
// 命名空间namespace D盘;// 相当于磁盘目录class file{const FILENAME= __CLASS__;}// 非限定名称:成员前面不添加任何的空间名称,包括\,相当于当前路径echo file::FILENAME,'<hr>';namespace D盘\一级目录;// 相当于1级目录class file{const FILENAME= __CLASS__;}// 限定名称:成员前面至少要有1个命名空间和1个反斜线\, 且反斜线\不能在首位, 相当于相对路径echo 二级目录\file::FILENAME,'<hr>';namespace D盘\一级目录\二级目录;// 相当于2级目录class file{const FILENAME= __CLASS__;}// 完全限定名称:第一个字符一定是反斜线(反斜线代表根空间), 然后再跟上命名空间,相当于绝对路径echo \D盘\一级目录\file::FILENAME,'<hr>';

用关键字use给命名空间起别名,也可给命名空间中的类起别名
namespace newdir;// 给命名空间起别名// 语法:use 命名空间名称 as 别名use D盘 as d;echo d\file::FILENAME,'<hr>';// 给命名空间+类起别名// 语法:use 命名空间名称+类名称 as 别名use D盘\一级目录\file as onefile;echo onefile::FILENAME,'<hr>';// 如果别名与类名相同,可省略as关键字及别名// 语法:use 命名空间名称+类名称use D盘\一级目录\二级目录\file;echo file::FILENAME,'<hr>';

命名空间和类别名 主要应用于简化命名空间较多且路径较长的类名称,可将命名空间和文件所在路径一一对应,类名和文件名一一对应,实现自动加载类文件
// 获取到带命名空间的类名称$className = 'inc\lib\functionclass';//1.将带命名空间的类名称中的反斜线替换为系统目录分割符$path = str_replace('\\', DIRECTORY_SEPARATOR, $className);// 2.拼接出要加载的类文件绝对路径$file = __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';// 3.用require加载这个类文件require $file;// 4.用use简化类名称,使用简化后的类名称访问类方法use inc\lib\functionclass;echo functionclass::myfunction();

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