批改状态:合格
老师批语:给每一行代码加上注释是一个好习惯, 便于以后复习
namespace ns\a1;echo __NAMESPACE__ . '<br>';class lei{public static $name = '空间ns\a1 - 类lei';}//这里是非限定名称 没有任何路径echo lei::$name;namespace ns;echo __NAMESPACE__ . '<br>';echo \ns\a2\lei::$name . '<br>';// 限定名称 本空间和另一个空间名称开头一致echo a2\lei::$name;class lei{public static $name = '空间nsa2 - 类lei';}namespace ns\a2;echo __NAMESPACE__ . '<br>';class lei{public static $name = '空间ns\a3 - 类lei';}// 完全限定名称 从根目录开始 开头带/echo \ns\a1\lei::$name;
总结:
非限定名称 没有任何路径
限定名称 本空间和另一个空间名称开头一致
完全限定名称 从根目录开始 开头带/
namespace ns1;class lei{public static $name = '空间ns1 - 类lei';}namespace ns2;class lei1{public static function index(){return '这里是个方法1可以写html 可以加载一个文件';}}class lei2{public static function cate(){return '这里是个方法2可以写html 可以加载一个文件';}}namespace ns3;//将空间ns1变名为 nuse ns1 as n;echo n\lei::$name . '<hr>';//将ns1\lei类的名称更改 类名称可以省略别名use ns1\lei;echo lei::$name;
//先把自动加载器文件加载过来require 'autoload.php';//自动加载器里面的代码try {// 注册一个自动加载器 参数是回调函数 函数就是类名spl_autoload_register(function($className){//1. 应该将类名中的命名空间的分隔符转为目录分隔符$path = str_replace('\\', DIRECTORY_SEPARATOR, $className);// 2. 生成真正要加载的类文件名称$file = __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';// 3. 加载这个文件require $file;return $file;});} catch (Exception $e) {die($e->getMessage());}//自动加载器里面的代码结束//这里很重要 你不use给他别名 在echo他的路径就不会显示use inc\lib\Demo1;//打印echo Demo1::say();
总结:抽空多复习,多看手册,写案例代码
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号