Correction status:qualified
Teacher's comments:
<?php namespace one{ class demo1 { const poetry = '一夜风呜花飘雨'; public function js() { $sum=''; for ($i=1; $i <50 ; $i++) { $sum += 1/($i*($i+1)); } return $sum; } } echo (new demo1())::poetry,'<br>'; } // namespace two{ class demo2{ const poetry = '两指竹哀箫弄魂'; public function out() { echo (new demo2)->poetry,'<br>'; echo \one\demo1::poetry,'<hr>'; } } echo (new demo2())::poetry,'<br>'; }
点击 "运行实例" 按钮查看在线实例
关于use的使用,会有对于命名空间的别名和方法的别名的引用.对于完全限定名称的引用则需要直接引用完全限定名称
<?php namespace usetest{ require 'PHP_Task12_namespace.php'; use one\demo1 as demo1; echo (new demo1())->js(); }
点击 "运行实例" 按钮查看在线实例
命名空间的定义需要namaspace关键字,建议一个文件只用一个命名空间,使用大括号语法来建立命名空间
关于非限定名称则是指的当前类的命名空间,没有命名空间名称的则直接指代当前全局命名空间;
限定名称类似于相对路径的做法,具体是根据当前类所在的命名空间来指定,直接为当前命名空间\类名来指定,如果是全局的命名空间,则是直接指代当前命名空间的解析加上前面的目录索引或者命名空间.
完全限定名称是类似绝对路径的做法,直接写上该类所在的整个路径的命名空间,他总是会定位到该类所在的命名空间.