批改状态:合格
老师批语:你的博客中为什么只有一个作业?
//ap.php;namespace A\one;//常量definedefine('CON',['con'=>'const','def'=>'define']);//常量constconst CONA=0;//接口interface I{public static function i_f(string $str):void;}//类class C{const CONS=1;public static function c_f(string $str):void{echo static::class.'=>'.$str.'</br>';}}//函数function F(){echo __FUNCTION__.'</br>';}/*------------------------------------------------*///bp.php;namespace B;//导入命名空间A\one,及别名引用use A\one\I as A1;use A\one\C as C1;use function A\one\F as F1;use const A\one\CONA;require 'ap.php';//interfaceclass C implements A1{public static function i_f(string $str):void{echo static::class.'=>'.$str.'</br>';}}echo '接口非限定';(new namespace\C())->i_f('str');//classecho '类非限定:';$c=C1::c_f('str');echo '类完全限定:';$c=\A\one\C::c_f('str');//functionecho '函数非限定:';F1();echo '函数完全限定:';\A\one\F();//constecho '常量const非限定:';echo 'CONA='.CONA.'</br>';echo '常量const完全限定:';echo 'CONA='.\A\one\CONA.'</br>';echo '类常量:';echo 'CONS='.C1::CONS.'</br>';//defineecho '常量define完全限定:';echo "CON['def']=".\CON['def'].'</br>';
\。\不是第一个字符.\.use spacename;use spacename\class;::class|spacename\class;解决了命名空间中的命名冲突问题;::class操作符和__NAMESPACE__魔术常量区别:__NAMESPACE__可以返回当前命名空间;不是真正意义的常量,不能设置,根据当前空间内容的不同,而不断变化.::class可以解析/反射出类的完全限定名称,快速生成完全限定名称的类名。
__NAMESPACE__适用于求当前命名空间名::class 可用于任何命名空间求任何类完全限定名
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号